【问题标题】:Different background color for selected RibbonTab所选 RibbonTab 的不同背景颜色
【发布时间】:2021-06-22 00:17:35
【问题描述】:

我有一个 WPF 窗口,其 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>

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

【问题讨论】:

    标签: wpf xaml styles ribbon


    【解决方案1】:

    您可以使用单一样式来更改标题文本颜色 (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>
    

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

    如果您仍然想尝试,这里有一个相关的帖子,它链接了一个 MSDN 论坛答案,该答案提供了一种可能的样式和可以适应的控制模板。不过,我建议简单地使用上面的样式。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-13
      • 2015-11-01
      • 2018-11-18
      • 2015-11-09
      • 2018-01-22
      • 2021-07-20
      相关资源
      最近更新 更多