web-dev-qa-db-fra.com

Comment utiliser le style pour l'en-tête GroupBox?

J'ai perdu de GroupBox dans mon formulaire que leur texte d'en-tête doit être Gras . Je sais comment le faire pour un seul GroupBox:

<GroupBox>
     <GroupBox.Header>
         <TextBlock Text="HEADER TEXT" FontWeight="Bold"/>
     </GroupBox.Header>
</GroupBox> 

Mais je suis intéressé de savoir comment faire avec Styles. Voici ce que j'ai essayé:

<Style TargetType="GroupBox">
    <Setter Property="BorderBrush" Value="{StaticResource lightBlueBrush}"/>
    <Setter Property="Margin" Value="25,1,5,5"/>
    //<Setter ??
</Style>

J'ai essayé <Setter Property="HeaderTemplate" Value={StaticResource myTemp}> qui myTemp est une simple DataTemplate Mais VS soudainement fermé! Je ne suis pas sûr de pouvoir le faire correctement, alors tout le monde peut m'aider?

EDIT: S'il vous plaît tester votre idée avant de poster comme une réponse!

17

Avez-vous essayé ce qui suit?

<Style TargetType="GroupBox">
    <Setter Property="BorderBrush" Value="{StaticResource lightBlueBrush}"/>
    <Setter Property="Margin" Value="25,1,5,5"/>
    <Setter Property="HeaderTemplate">
        <Setter.Value>
            <DataTemplate>
                <TextBlock Text="{Binding}" FontWeight="Bold"/>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

Usage:

<GroupBox Header="Title" />
29
DHN

Un groupboxs headerTemplate est un type de DataTemplate. vous devez donc fournir un objet datatemplate contenant le style ou le modèle. 

essayez ci-dessous un.

   <Window.Resources>

        <DataTemplate x:Key="DataTemplate1">
            <TextBlock Text="Test Templated Header"/>
        </DataTemplate>

    </Window.Resources>
    <Grid>
        <GroupBox  Header="Test Header" HeaderTemplate="{StaticResource DataTemplate1}">
            <Border BorderBrush="Red" Margin="10">
                <TextBlock Text="Hello"/>
            </Border>
        </GroupBox>
    </Grid>
1
JSJ