web-dev-qa-db-ja.com

GroupBoxヘッダーのスタイルの使用方法

ヘッダーテキストがBoldである必要があるというフォームで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が突然クローズしました!私がそれを行う正しい方法であるかどうかわからないので、誰かが私を助けることができますか?

編集:回答として投稿する前に、アイデアをテストしてください!

20

以下を試しましたか?

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

Groupboxs headerTemplateは、DataTemplateの一種です。そのため、スタイルまたはテンプレートが組み込まれたdatatemplateオブジェクトを提供する必要があります。

以下の1つを試してください。

   <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