所选 RibbonTab 的不同背景颜色

Different background color for selected RibbonTab

我有一个 WPF Window,其中 Ribbon 具有深色背景颜色 (SolidColorBrush)

我已将选项卡的字体颜色设置为白色,但在所选选项卡中无法阅读。所以我想在选定的选项卡中有一个黑色背景(或者黑色字体颜色也可以)。 我的 app.xaml 包含此代码来设置样式:

<Application.Resources>
    <ResourceDictionary>
        <Style x:Key="SelectedRibbonTab" TargetType="RibbonTab">
            <Setter Property="Background" Value="Black"></Setter>
        </Style>
        <Style TargetType="RibbonTab">
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="HeaderStyle" Value="{DynamicResource SelectedRibbonTab}"></Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
        <Style TargetType="RibbonTabHeader">
            <Setter Property="Foreground" Value="White"></Setter>
        </Style>
    </ResourceDictionary>
</Application.Resources>

它显然不起作用,有什么解决方案可以解决这个问题吗?

您可以使用单一样式来更改页眉文本颜色 (Foreground) 使用 IsRibbonTabSelected

<Style TargetType="RibbonTabHeader">
   <Setter Property="Foreground" Value="White"/>
   <Style.Triggers>
      <Trigger Property="IsRibbonTabSelected" Value="True">
         <Setter Property="Foreground" Value="Black"/>
      </Trigger>
   </Style.Triggers>
</Style>

不建议更改功能区选项卡的背景,因为这不是那么简单。可以通过设置 Ribbon 本身的 Background 属性 来自定义功能区和功能区选项卡背景。这将依次调整所有 选项卡在所有州 中的背景颜色。这些背景使用渐变,并在各自的控件模板中定义。同样,即使获得这些控件模板也不容易,请参阅:

  • How to customize the WPF Ribbon 4.5 (styles, templates, etc.)

如果您仍然想尝试,这里有一个相关的 post,它链接了一个 MSDN 论坛答案,该答案提供了一个可能的样式和控制模板,可以进行调整。但是,我建议简单地使用上面的样式。

另一种方法是使用 Fluent.Ribbon,它为自定义提供了更多支持。