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
プロパティは認識されてコンパイルされますが、何も起こりません。
一体何が起こっているのか、そして私は何を間違っているのですか?これは私を何時間も狂わせてきました!