【发布时间】: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