更改TabControl的背景颜色
本文关键字:颜色 背景 TabControl 更改 | 更新日期: 2024-09-24 04:52:33
我正在使用.NET 4.5 WPF功能区,并且希望在任何情况下更改某个特定RibbonTab的背景色(无论它是否被选中、悬停在上面-不要问为什么)。通常我会在Blend中查看模板的代码,但尝试复制样式失败,错误为"无法复制模板"。
到目前为止,我有以下内容:
<RibbonTab.HeaderStyle>
<Style TargetType="RibbonTabHeader" BasedOn="{StaticResource {x:Type RibbonTabHeader}}">
<Setter Property="Background" Value="Red" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
</Style.Triggers>
</Style>
</RibbonTab.HeaderStyle>
问题是,当选择选项卡控件时,我似乎找不到如何更改颜色的方法。
我不能发表评论,因为我还没有足够的声誉。
RibbonTabHeader
具有以下属性:
CheckedBackground
-获取或设置用于绘制控件处于选中状态时的背景FocusedBackground
-获取或设置用于绘制控件具有焦点时的背景MouseOverBackground
-获取或设置用于绘制的画笔鼠标悬停在控件上时控件的背景Background
-获取或设置用于描述控件。(从控件继承。)
您是否尝试将CCD_ 6设置为CCD_,CheckedBackground
设置为选中时要使用的颜色,Background
设置为"未选中,未悬停"状态。
使用Snoop,我发现需要为RibbonTab
更改的是CheckedBackground
。原因是在模板中有一个边界,当其父项IsSelected更改时,该边界会触发其背景。该颜色分别与CheckedBackground
和Background
绑定
我能够用这个代码创建一个工作示例:
<RibbonTab>
<RibbonTab.Header>
<RibbonTabHeader Content="TabName here"
CheckedBackground="Red"
Background="Red" />
</RibbonTab.Header>
</RibbonTab>
选中和未选中时,此选项将保持红色。