2010-01-20 4 views
7

Est-il possible de définir l'alignement de position pour un GroupBoxHeader dans WPF? La valeur par défaut est de placer dans le coin supérieur gauche du contour GroupBox mais je voudrais qu'il soit centré en haut. Je sais que vous pouvez définir les propriétés du texte en utilisant:WPF Alignement de la position de l'en-tête de Groupbox

<GroupBox Grid.Row="1" HorizontalAlignment="Center"> 
    <GroupBox.Header> 
     <TextBlock Text="Cash Match" Foreground="Black" FontWeight="Bold"/> 
    </GroupBox.Header> 
</GroupBox> 

Mais je cherche à définir la position de celui-ci par rapport au contour GroupBox.

Répondre

12

C'est simple! Il suffit de modifier Modèle de GroupBox:

Dans Blend, procédez comme suit:

  • clic droit GroupBox> Modifier le modèle> Modifier une copie> OK
  • Rechercher section suivante:

    <Border x:Name="Header" Padding="3,1,3,0" 
         Grid.Column="1" Grid.Row="0" Grid.RowSpan="2"> 
        ... 
    </Border> 
    
  • Modifier Grid.Column à 2

  • HorizontalAlignment="Right"

Vous venez d'aligner l'en-tête à droite !!! Mais bot le trou blanc derrière. Pour cela,

  • maintenant la recherche pour la section suivante:

    <Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="4" Grid.ColumnSpan="4" Grid.Row="1" Grid.RowSpan="3"> 
        <Border.OpacityMask> 
         ... 
        </Border.OpacityMask> 
        ... 
    </Border> 
    
  • Ajouter RenderTransformOrigin="0.5,0.5" à la frontière

  • Juste au-dessus, ajoutez le code suivant (ce décalera le "gap blanc" derrière la tête à droite:

    <Border.RenderTransform> 
        <ScaleTransform ScaleX="-1"/> 
    </Border.RenderTransform> 
    

Vous avez terminé! Vous venez d'avoir un GroupBox avec l'en-tête aligné à droite !!!

S'il vous plaît dites-moi si c'est ce que vous avez demandé.

+0

Merci! J'espérais que c'était une propriété que j'ai oubliée mais cette approche a fonctionné. – ambog36

+1

Pas de problème! Mais si cette réponse résout votre problème, veuillez le marquer comme accepté, afin que d'autres personnes confrontées à un problème similaire puissent s'en prévaloir. – mg007

2

La modification de l'en-tête de l'en-tête de groupe entraînera des contrôles non conformes à l'OS.

Par conséquent, je pense que vous ne serez pas en mesure de changer cela en utilisant les styles par défaut. Un modèle personnalisé résoudra votre problème.

Questions connexes