【问题标题】:How to change a single property in trigger template of default TabItem?如何更改默认 TabItem 触发模板中的单个属性?
【发布时间】:2012-10-04 00:36:36
【问题描述】:

我想要实现的目标很容易解释:更改 wpf-tabitem 的背景颜色以防它被选中(它应该适合窗口背景)。默认控件的所有其他属性应保持不变。

我想出的转储解决方案是将整个默认样式复制到我的ResourceDictionary 并在以下部分替换颜色#FFF9F9F9

 <Trigger Property="Selector.IsSelected">
  /* ..... cutting some lines here ....*>
  <Setter Property="Panel.Background" TargetName="Bd">
   <Setter.Value>
    <SolidColorBrush>
    #FFF9F9F9</SolidColorBrush>
   </Setter.Value>
  </Setter>

显然,我不喜欢这样并尝试应用继承 (BasedOn="{StaticResource {x:Type TabItem}}")。这没有效果。 然后我尝试了模板设置。但是,我未能处理默认模板中的边框,由“Bd”引用 avobe。将边框添加到我的 ContentTemplated 是可行的,但默认 TabItem 的所有其他功能都消失了(鼠标悬停等)。

谁能告诉我如何在不复制整个默认模板的情况下更改此颜色属性?任何帮助表示赞赏!

【问题讨论】:

    标签: wpf controltemplate inheritance


    【解决方案1】:

    如果颜色未链接到默认模板中的属性(如Background),则必须用编辑后的副本替换模板,没有其他(可接受的)更改方法。

    【讨论】:

    • 有一个属性(“Panel.Background”)但无法访问。我希望有一些解决方法。感谢您明确表示没有其他办法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多