如何使用风格的GroupBox头?(How to use style for GroupBox he

2019-08-19 10:34发布

我已经失去了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突然关门! 我不知道如果我在做这件事的正确方法,所以任何人都可以帮助我吗?

编辑:张贴作为一个答案之前,请测试你的想法!

Answer 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" />


Answer 2:

甲groupboxs HeaderTemplate中是一种类型的DataTemplate的。 所以你应该提供的样式或模板一个DataTemplate对象insteed。

试试下面一个。

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


文章来源: How to use style for GroupBox header?