我有一個ControlTemplate內的ContentPresenter嘗試佈局TabItem。我希望標題內的TextBlock的前景顏色在選中標籤時改變顏色。我的模板如下:ContentPresenter觸發器無法正常工作
<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
來確保我們只更改標題而不是整個標籤。該財產被認可並編譯,但沒有任何反應。
這是怎麼回事,我做錯了什麼?這已經讓我堅持了幾個小時!