2010-08-02 24 views
21

J'utilise la classe TabControl dans WPF et j'ai remarqué que le contenu de chaque TabItem a une marge par défaut de 4 pixels de tous les côtés.Comment supprimer la marge par défaut sur le contenu d'un TabItem?

Exemple de code:

<Window x:Class="TabControlPadding.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 
    <Grid> 
    <TabControl Margin="10"> 
     <TabItem Header="Tab 1"> 
     <Grid Background="Pink"/> 
     </TabItem> 
     <TabItem Header="Tab 2"> 
     <Grid Background="LightBlue"/> 
     </TabItem> 
    </TabControl> 
    </Grid> 
</Window> 

Screenshot:

The margin around a TabItem's content

Je voudrais vous débarrasser de cette marge (réduire à zéro), mais je préfère ne pas avoir à remplacer complètement les modèles ou quelque chose de lourd comme ça.

Existe-t-il un moyen simple de le faire de manière très ciblée?

Répondre

40

Il suffit de définir Rembourrage à zéro sur le TabControl:

<TabControl Margin="10" Padding="0"> 

Le style par défaut pour TabControl définit la Rembourrage à 4 et se fixe la marge sur le contenu hôte du Padding sur le TabControl.

+0

Haha! Génie! Et là, j'étais en train de jouer avec les TabItems. :) –

+0

Spécialement lié au rembourrage de la languette de contrôle. – Hans

3

Si vous souhaitez que la boîte rose s'étende jusqu'à la ligne de bordure noire sans blanc entre les deux, il existe un moyen simple de ne pas créer votre propre modèle de contrôle.

Le style par défaut de TabItem a une marge de 4 autour du présentateur de contenu. Un moyen rapide de compenser cela est de faire la marge du contrôle à l'intérieur du TabItem -4.

<TabItem> 
    <Grid Margin="-4"> 
    </Grid> 
    <TabItem> 
+0

J'essayais de réduire la marge/padding dans le texte d'en-tête, et cette astuce a rendu possible! – mdisibio

0

Définir la marge pour la TabItem au lieu de Tab

<TabItem Margin="0,0,0,0"/> 

Définissez la marge pour le TabItem à 0, cela remplacera la marge par défaut et le travail selon vos besoins