我正在尝试从 .NET Framework 4.5 更改新WPF 功能区控件的主题,但我被卡住了。
我只设法更改了一些画笔(背景、前景、边框......),但我似乎无法更改明亮的叠加层和阴影。
我很高兴使用资源字典,但我不知道需要设置哪些属性。
我希望你能指出我正确的方向,非常感谢你的帮助!
我正在尝试从 .NET Framework 4.5 更改新WPF 功能区控件的主题,但我被卡住了。
我只设法更改了一些画笔(背景、前景、边框......),但我似乎无法更改明亮的叠加层和阴影。
我很高兴使用资源字典,但我不知道需要设置哪些属性。
我希望你能指出我正确的方向,非常感谢你的帮助!
如果您想要更改的不仅仅是 Ribbon 控件(或任何其他控件)的公开属性,例如 Background、Foreground 等,则必须编辑控件的Template。
在控件的模板中,您几乎可以更改属于控件视觉外观的任何内容。
有关自定义控件模板的更多信息,请查看此链接:MSDN 样式和模板
对于遇到此问题的任何人,您可以查看第三方控件,例如:Syncfusion 的功能区(看起来像办公室主题)
这很简单,在您的 App.xaml 中,您可以定义一个主题并将此主题分配给您想要的任何控件。例如,我已将 Office_Blue 定义为我的主题,并将此主题仅分配给我的 Button,如下所示:
<Application.Resources>
<telerik:Theme x:Key="TelerikGlobalTheme">Office_Blue</telerik:Theme>
<Style BasedOn="{x:Null}" TargetType="{x:Type Button}">
<Setter Property="telerik:StyleManager.Theme" Value="{DynamicResource TelerikGlobalTheme}" />
</Style>
您可以为上述定义的主题分配任意数量的控件。
据我所知,有两个主题,一个是“Windows 7(默认)”,另一个是“Office 2007 Blue”。您可以通过将资源字典添加到窗口的资源来更改主题,该资源的来源是 office 2007 Blue 的 xaml 文件,如下所示:
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="/RibbonControlsLibrary;component/Themes/Office2007Blue.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
您可以将 Office2007Blue.xaml 复制到一个新的 xaml 文件并对其进行修改以创建自定义主题,然后按照与上述相同的方式引用它。
你可以从这里获得更多关于 Ribbon的信息。
如果你想要快速简单的解决方案,那么试试这个现成的 WPF 主题。