更改 TabControl 的背景颜色
Change Backgroundcolor of TabControl
我正在使用 .NET 4.5 WPF 功能区并希望在所有情况下更改一个特定 RibbonTab 的背景颜色(无论它是否被选中、是否悬停 - 不要问为什么) .通常我会查看 Blend 中的模板代码,但尝试复制样式失败并出现错误 "could not copy template"。
到目前为止我有以下内容:
<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
- 获取或设置描述背景的画笔
一个控件。 (继承自控件。)
您是否尝试过将 MouseOverBackground
设置为 Yellow
,
CheckedBackground
为您在选择时要使用的颜色,Background
为 "not selected, not hovering" 状态。
使用 Snoop 我发现您需要为 RibbonTab
更改 CheckedBackground
。原因是在模板中有一个边框,当其父级 IsSelected 更改时会触发其背景。此颜色分别绑定到 CheckedBackground
和 Background
。
我能够使用此代码创建一个工作示例:
<RibbonTab>
<RibbonTab.Header>
<RibbonTabHeader Content="TabName here"
CheckedBackground="Red"
Background="Red" />
</RibbonTab.Header>
</RibbonTab>
选中和取消选中时它保持红色。
我正在使用 .NET 4.5 WPF 功能区并希望在所有情况下更改一个特定 RibbonTab 的背景颜色(无论它是否被选中、是否悬停 - 不要问为什么) .通常我会查看 Blend 中的模板代码,但尝试复制样式失败并出现错误 "could not copy template"。
到目前为止我有以下内容:
<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
- 获取或设置描述背景的画笔 一个控件。 (继承自控件。)
您是否尝试过将 MouseOverBackground
设置为 Yellow
,
CheckedBackground
为您在选择时要使用的颜色,Background
为 "not selected, not hovering" 状态。
使用 Snoop 我发现您需要为 RibbonTab
更改 CheckedBackground
。原因是在模板中有一个边框,当其父级 IsSelected 更改时会触发其背景。此颜色分别绑定到 CheckedBackground
和 Background
。
我能够使用此代码创建一个工作示例:
<RibbonTab>
<RibbonTab.Header>
<RibbonTabHeader Content="TabName here"
CheckedBackground="Red"
Background="Red" />
</RibbonTab.Header>
</RibbonTab>
选中和取消选中时它保持红色。