0

有这样的风格

<Style TargetType="TreeViewItem">
  <Style.Triggers>
    <Trigger Property="IsExpanded" Value="True">
      <Setter Property="Header" Value="Pink"></Setter>
    </Trigger>
  </Style.Triggers>
</Style>

我希望扩展的 TreeViewItems 的文本是“粉红色”,但实际上没有设置。如果我改为改为 Property="Background",它就可以工作。HeaderBackground有何不同?

4

2 回答 2

3

我想我需要更多信息才能更完整地回答这个问题。但是,如果我不得不猜测,我会说您可能会像这样明确地设置 TreeViewItem 上的 Header 属性:

<TreeView>
    <TreeViewItem
        Header="Blue"/>
</TreeView>

而且,在这种情况下,显式设置它会覆盖您在样式中放置的任何内容。

于 2009-03-20T18:47:13.137 回答
1

详细说明 ascalonx 的答案:

复制自Josh Smith 的博客:

WPF 内部使用一组定义明确的规则来确定 DP 的真正价值是什么。以下是解析 DP 值时使用的优​​先级规则的简要总结(从最高优先级到最低优先级):

  1. 属性系统强制
  2. 活动动画,或具有 Hold 行为的动画
  3. 当地价值
  4. TemplatedParent 模板
  5. 风格触发器
  6. 模板触发器
  7. 样式设置器
  8. 主题风格
  9. 遗产
  10. 依赖属性元数据的默认值

因此,如果您明确设置 Header 属性,(或者如果您绑定它我认为),您就会遇到这个问题。

于 2009-03-20T19:01:11.000 回答