gpt4 book ai didi

wpf - ContentPresenter 触发器不起作用

转载 作者:行者123 更新时间:2023-12-01 01:17:46 26 4
gpt4 key购买 nike

我在 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确保我们只更改标题而不是整个选项卡。该属性被识别并编译,但没有任何 react 。

这到底是怎么回事,我做错了什么?这让我疯狂了好几个小时!

最佳答案

知道了!

我有这样的标题:

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

问题是,标题中已经有一个 TextBlock,您不需要再次包装文本。
<TabItem.Header>
My Header
</TabItem.Header>

它有效。

关于wpf - ContentPresenter 触发器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11068249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com