2010-09-07 5 views
1

J'écris un éditeur de texte dans WPF et il me semble avoir une frontière étrange que je ne peux pas enlever.WPF TabControl avec WindowsFormsHost problème inconnu de bordure

J'ai une grille avec un tabcontrol, et quand un utilisateur sélectionne "Fichier -> Nouveau", j'ajoute un nouvel onglet au programme par tabulation. Je définis le contenu de tabitem à une instance de WindowsFormsHost afin d'héberger le contrôle ScintillaNet WinForms.

Voici le problème: http://i.stack.imgur.com/kotSb.png

Je suis assez sûr que la frontière ne vient pas du contrôle WinForms lui-même, comme je l'ai utilisé ailleurs dans la même configuration, et il n'a pas de frontière.

La bordure rouge que vous voyez est ajoutée par moi pour mettre en évidence le problème (dans la méthode qui répond à Fichier -> Nouveau), avec le code suivant:

tabControl.BorderThickness = new Thickness(3, 3, 3, 3); 
tabControl.BorderBrush = Brushes.Red; 
tabControl.Items.Add(tab); 
tab.Focus(); 

Toutes les idées où cette frontière grise intérieure vient de?

Répondre

1

C'est le remplissage sur le TabControl, qui est une marge qu'il applique à l'élément enfant hébergé. Voir Alignment, Margins, and Padding Overview. Il est défini sur 4 dans le style TabControl par défaut. Essayez de régler les Rembourrage à zéro explicitement:

tabControl.BorderThickness = new Thickness(3, 3, 3, 3); 
tabControl.BorderBrush = Brushes.Red; 
tabControl.Padding = new Thickness(0); 
tabControl.Items.Add(tab); 
tab.Focus(); 
+0

Un grand merci, semble si évident maintenant que vous me l'avez dit :) – Mark