2

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

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

4

1 回答 1

0

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

于 2012-10-03T16:28:34.757 回答