Как использовать стиль для заголовка GroupBox? - программирование
Подтвердить что ты не робот

Как использовать стиль для заголовка GroupBox?

Я потерял GroupBox в своей форме, чтобы их текст заголовка был Полужирный. Я знаю, как это сделать для одного GroupBox:

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

Но мне интересно узнать, как это сделать с помощью Styles. Вот что я пробовал:

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

Я пробовал <Setter Property="HeaderTemplate" Value={StaticResource myTemp}> Какой myTemp является простым DataTemplate Но VS внезапно закрыт! Я не уверен, правильно ли я это сделал, чтобы кто-нибудь мог мне помочь?

РЕДАКТИРОВАТЬ: Пожалуйста, проверьте свою идею, прежде чем отправлять ее в качестве ответа!

4b9b3361

Ответ 1

Вы пробовали следующее?

<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>

Использование:

<GroupBox Header="Title" />

Ответ 2

Групповые поля headerTemplate - это тип DataTemplate. поэтому вы должны предоставить объект datatemplate, внедренный в стиль или шаблон.

попробуйте ниже.

   <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>