如何使用GroupBox头的样式

本文关键字:样式 GroupBox 何使用 | 更新日期: 2023-09-27 18:07:18

我已经失去了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突然关闭!我不确定这样做是否正确,有人能帮我吗?

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

如何使用GroupBox头的样式

您尝试了以下操作吗?

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

组框的headerTemplate是DataTemplate的一种类型。因此,您应该提供一个数据模板对象,而不是样式或模板。

try below .

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