如何更改默认TabItem的触发器模板中的单个属性?

时间:2012-10-03 16:24:03

标签: wpf controltemplate inheritance

我想要实现的内容很容易解释:更改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的所有其他功能都消失了(鼠标悬停等)。

有人可以给我一个提示如何在不复制整个默认模板的情况下更改此颜色属性吗?任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

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