如何使用GroupBox标题的样式?

时间:2013-04-04 10:17:20

标签: c# wpf combobox styles

我的表单中遗失了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突然关闭了!我不确定我是否以正确的方式做到这一点,所以任何人都可以帮助我?

编辑:请在发布之前测试您的想法作为答案!

2 个答案:

答案 0 :(得分:31)

您是否尝试过以下操作?

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

答案 1 :(得分:1)

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