更改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>

问题是,当选择选项卡控件时,我似乎找不到如何更改颜色的方法。

更改TabControl的背景颜色

我不能发表评论,因为我还没有足够的声誉。

RibbonTabHeader具有以下属性:

  • CheckedBackground-获取或设置用于绘制控件处于选中状态时的背景
  • FocusedBackground-获取或设置用于绘制控件具有焦点时的背景
  • MouseOverBackground-获取或设置用于绘制的画笔鼠标悬停在控件上时控件的背景
  • Background-获取或设置用于描述控件。(从控件继承。)

您是否尝试将CCD_ 6设置为CCD_,CheckedBackground设置为选中时要使用的颜色,Background设置为"未选中,未悬停"状态。

使用Snoop,我发现需要为RibbonTab更改的是CheckedBackground。原因是在模板中有一个边界,当其父项IsSelected更改时,该边界会触发其背景。该颜色分别与CheckedBackgroundBackground绑定
我能够用这个代码创建一个工作示例:

<RibbonTab>
    <RibbonTab.Header>
        <RibbonTabHeader Content="TabName here"
                         CheckedBackground="Red"
                         Background="Red" />
    </RibbonTab.Header>
</RibbonTab>

选中和未选中时,此选项将保持红色。