XAML 更改WPF RibbonQuickAccess渐变背景

muk1a3rh  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(102)

我尝试使用黑色和白色的主题来设计我的应用程序,我有一个非常顽固的组件,名为“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检查对象,如下所示。我可以看到我的颜色都从本地造型和主题造型。

daolsyd0

daolsyd01#

经过长时间的研究和无数的尝试和失败的解决方案,我放弃了默认的Ribbon,使用了https://github.com/fluentribbon/Fluent.Ribbon。将默认Ribbon调整为Fluent Ribbon非常简单,并且可用的控件和样式令人印象深刻。把这个答案贴出来给其他正在挣扎的人。

相关问题