通过触发器更改 TreeViewItem 标题
-
21-08-2019 - |
题
拥有这样的风格
<Style TargetType="TreeViewItem">
<Style.Triggers>
<Trigger Property="IsExpanded" Value="True">
<Setter Property="Header" Value="Pink"></Setter>
</Trigger>
</Style.Triggers>
</Style>
我希望展开的 TreeViewItems 的文本为“粉红色”,但实际上没有设置。如果我改为 Property=“Background”,它就会起作用。如何 标头 不同于 背景?
解决方案
我想我需要更多的信息,以更全面地回答这个问题。但是,如果我猜的话,我会说你可能设置在树型视图Header属性明确的是这样的:
<TreeView>
<TreeViewItem
Header="Blue"/>
</TreeView>
和,在这种情况下,设置它明确将覆盖任何东西,你把风格。
其他提示
详细说明ascalonx的答案:
复制自 约什·史密斯的 博客:
WPF内部使用了一组明确定义的规则,以弄清DP的实际值是什么。这是解决DP值(从最高优先级到最低的)时使用的优先规则的简要摘要:
- 财产制度强制
- 主动动画或具有保持行为的动画
- 本地价值
- 模板化父模板
- 风格触发因素
- 模板触发器
- 风格设定者
- 主题风格
- 遗产
- 依赖属性元数据的默认值
因此,如果您显式设置 Header 属性(或者我认为您绑定了它),就会遇到这个问题。
不隶属于 StackOverflow