所选 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 论坛答案,该答案提供了一个可能的样式和控制模板,可以进行调整。但是,我建议简单地使用上面的样式。
- Changing Windows.Ribbon background color
- Placing a Background to a Tab on a Ribbon Control
另一种方法是使用 Fluent.Ribbon,它为自定义提供了更多支持。
我有一个 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 论坛答案,该答案提供了一个可能的样式和控制模板,可以进行调整。但是,我建议简单地使用上面的样式。
- Changing Windows.Ribbon background color
- Placing a Background to a Tab on a Ribbon Control
另一种方法是使用 Fluent.Ribbon,它为自定义提供了更多支持。