我尝试使用黑色和白色的主题来设计我的应用程序,我有一个非常顽固的组件,名为“Ribbon”,我似乎不能让它看起来像我想要的。我有以下功能区
代码隐藏
<Ribbon x:Name="AppRibbon"
DockPanel.Dock="Top"
BorderThickness="1"
Grid.Row="0"
MaxHeight="138"
SelectedIndex="0">
<Ribbon.QuickAccessToolBar>
<RibbonQuickAccessToolBar Padding="10" Margin="2" Background="Red" Foreground="Aquamarine" OverridesDefaultStyle="True" Style="{DynamicResource CustomQuickAccessStyle}">
<RibbonButton x:Name="QuickAccessFileOpenButton"
SmallImageSource="{svgc:SvgImage Source='pack://application:,,,/Resources/ApplicationToolbar/file_open.svg'}">
<RibbonButton.ToolTip>
<uc:CustomTemplateTooltip Placement="Bottom"
Header="{x:Static p:Resources.Quick_Access_File_Open_Tooltip_Header}"
Body="{x:Static p:Resources.Quick_Access_File_Open_Tooltip_Body}"
Template="{StaticResource CustomToolTipTemplate}" />
</RibbonButton.ToolTip>
</RibbonButton>
<RibbonToggleButton x:Name="AutoOpenLastFileButton"
SmallImageSource="{svgc:SvgImage Source='pack://application:,,,/Resources/HomeTab/File/auto_open_file.svg'}">
<RibbonToggleButton.ToolTip>
<uc:CustomTemplateTooltip Placement="Bottom"
Header="{x:Static p:Resources.Quick_Access_File_Auto_Open_Tooltip_Header}"
Body="{x:Static p:Resources.Quick_Access_File_Auto_Open_Tooltip_Body}"
Template="{StaticResource CustomToolTipTemplate}" />
</RibbonToggleButton.ToolTip>
</RibbonToggleButton>
<RibbonButton x:Name="QuickAccessPublishButton"
SmallImageSource="{svgc:SvgImage Source='pack://application:,,,/Resources/ApplicationToolbar/publish_to_png.svg'}">
<RibbonButton.ToolTip>
<uc:CustomTemplateTooltip Placement="Bottom"
Header="{x:Static p:Resources.Tooltip_Export_Export_Png_Button_Header}"
Body="{x:Static p:Resources.Tooltip_Export_Export_Png_Button_Body}"
Template="{StaticResource CustomToolTipTemplate}" />
</RibbonButton.ToolTip>
</RibbonButton>
<RibbonButton x:Name="QuickAccessDeleteFileButton"
Label="{x:Static p:Resources.Ribbon_File_Delete}"
SmallImageSource="{svgc:SvgImage Source='pack://application:,,,/Resources/QuickAccessToolbar/file_delete.svg'}">
<RibbonButton.ToolTip>
<uc:CustomTemplateTooltip Placement="Bottom"
Header="{x:Static p:Resources.Tooltip_Home_Delete_Image_Header}"
Body="{x:Static p:Resources.Tooltip_Home_Delete_Image_Body}"
Template="{StaticResource CustomToolTipTemplate}" />
</RibbonButton.ToolTip>
</RibbonButton>
<RibbonButton x:Name="QuickAccessRenameFileButton"
Label="{x:Static p:Resources.Ribbon_File_Rename}"
SmallImageSource="{svgc:SvgImage Source='pack://application:,,,/Resources/QuickAccessToolbar/file_rename.svg'}">
<RibbonButton.ToolTip>
<uc:CustomTemplateTooltip Placement="Bottom"
Header="{x:Static p:Resources.Tooltip_Home_Rename_Image_Header}"
Body="{x:Static p:Resources.Tooltip_Home_Rename_Image_Body}"
Template="{StaticResource CustomToolTipTemplate}" />
</RibbonButton.ToolTip>
</RibbonButton>
<RibbonButton x:Name="QuickAccessFileProperitiesButton"
Label="{x:Static p:Resources.Ribbon_File_Properties}"
SmallImageSource="{svgc:SvgImage Source='pack://application:,,,/Resources/HomeTab/File/file_properties.svg'}">
<RibbonButton.ToolTip>
<uc:CustomTemplateTooltip Placement="Bottom"
Header="{x:Static p:Resources.Tooltip_Home_Image_Properties_Header}"
Body="{x:Static p:Resources.Tooltip_Home_Image_Properties_Body}"
Template="{StaticResource CustomToolTipTemplate}" />
</RibbonButton.ToolTip>
</RibbonButton>
</RibbonQuickAccessToolBar>
</Ribbon.QuickAccessToolBar>
</Ribbon>
我试着改变渐变色,使之快速获得纯色.我试着(正如你所看到的)设置背景为红色和前景基本上我试图改变它的颜色,但没有反映(它需要的颜色信息从丝带本身)我还尝试了自定义风格
<Style x:Key="CustomQuickAccessStyle" TargetType="{x:Type RibbonQuickAccessToolBar}">
<Setter Property="OverridesDefaultStyle"
Value="True" />
<Setter Property="Background"
Value="Red" />
<Setter Property="BorderBrush"
Value="Blue" />
<Setter Property="Foreground"
Value="DarkGreen" />
<Setter Property="FocusVisualStyle"
Value="{StaticResource FocusVisual}" />
</Style>
我有同样的问题与RibbonTab时,它的背景是白色,我想一个更灰色的背景选择。
<Style TargetType="{x:Type RibbonTabHeader}">
<Setter Property="Foreground"
Value="Red" />
<Style.Triggers>
<Trigger Property="IsRibbonTabSelected"
Value="True">
<Setter Property="Foreground"
Value="Green" />
</Trigger>
</Style.Triggers>
</Style>
但这也行不通。所以我假设Ribbon中的每个组件的样式似乎不起作用,我已经花了几个小时来改变这一点,我头疼,所以我最终放弃了,决定在这里问一下。
任何指导将非常感谢。要添加更多内容,我使用Live Property Explorer检查对象,如下所示。我可以看到我的颜色都从本地造型和主题造型。
1条答案
按热度按时间daolsyd01#
经过长时间的研究和无数的尝试和失败的解决方案,我放弃了默认的Ribbon,使用了https://github.com/fluentribbon/Fluent.Ribbon。将默认Ribbon调整为Fluent Ribbon非常简单,并且可用的控件和样式令人印象深刻。把这个答案贴出来给其他正在挣扎的人。