4

ControlTemplate内にContentPresenterがあり、TabItemをレイアウトしようとしています。タブが選択されたときに、ヘッダー内のTextBlockの前景色の色を変更したい。私のテンプレートは次のとおりです。

<TabControl.Resources>
    <Style TargetType="TabPanel">
        <Setter Property="HorizontalAlignment" Value="Right" />
    </Style>
    <Style TargetType="TabControl">
        <Setter Property="BorderThickness" Value="0,0,0,0"></Setter>
    </Style>
    <Style TargetType="TabItem">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TabItem}">
                    <ContentPresenter x:Name="ContentSite"
                                         VerticalAlignment="Center"
                                         HorizontalAlignment="Center"
                                         ContentSource="Header"
                                         Margin="30,10,30,10"/>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter TargetName="ContentSite" Property="TextBlock.Foreground" Value="DarkGoldenrod"></Setter>
                        </Trigger>    
                        <Trigger Property="IsSelected" Value="False">
                            <Setter TargetName="ContentSite" Property="TextBlock.Foreground" Value="Black"></Setter>
                        </Trigger>    
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</TabControl.Resources>

残念ながら、トリガーは何もしていません。SOに関する他のいくつかの投稿では、タブ全体ではなくヘッダーのみを変更するようSetterに使用して、私のものとまったく同じように見えるタグを示しています。TargetNameプロパティは認識されてコンパイルされますが、何も起こりません。

一体何が起こっているのか、そして私は何を間違っているのですか?これは私を何時間も狂わせてきました!

4

2 に答える 2

3

とった!

私はこのようなヘッダーを持っていました:

<TabItem.Header>
    <TextBlock>My Header</TextBlock>
</TabItem.Header>

問題は、ヘッダー内にすでにTextBlockがあり、テキストを再度折り返す必要がないことでした。

<TabItem.Header>
    My Header
</TabItem.Header>

そしてそれは動作します。

于 2012-06-17T02:43:55.330 に答える
1

私にとって期待どおりに機能します。あなたの問題はどこかにある可能性があります...

于 2012-06-17T02:10:22.303 に答える