更改MahApps Metro主题

14
我知道MahApps metro主题带有“主题”(颜色设置),但我不知道如何在我的WPF应用程序中更改它们的默认设置。我已经按照MahApps.Metro文档的入门教程进行了操作(包括在页面顶部添加资源库),但它没有提及如何更改主题。组件/样式/Colors.xaml文件有一个注释“来自cosmopolitan主题包”,这可能对比我更熟悉WPF设计的人有所帮助。我谈论的是整个应用程序的主题更改,而不是单个控件。
1个回答

21
如果您想更改默认的颜色方案,只需更改加载的颜色资源文件即可。
来自蓝色色调:
    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />

变成红色:

    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Red.xaml" />

一旦加载了每个颜色资源文件,您还可以通过ThemeManager.ChangeTheme()进行编程更改。


2
谢谢!另外,我发现基础主题(决定大部分的颜色方案,你提到的文件只改变强调/高亮)可以通过 /Accents/BaseLight.xml 或 BaseDark.xml 进行更改。 - gbmhunter
这些文件在哪里?我已经从包管理器中加载了MahApps,我可以看到.dll文件,但是我找不到这些xaml文件进行编辑。 - Bishop
3
我认为它们只是打包在dll文件中。源代码位于:https://github.com/MahApps/MahApps.Metro/tree/master/MahApps.Metro/Styles/Accents - Rich
@Rich 如果我需要对默认的MahApps样式进行微调,这是否意味着我需要编辑相应的MahApps xaml文件,然后重新编译dll? - Damilola Olowookere
嗯,我认为可以。您还可以使用基于MahApps样式的自定义样式,例如<Style TargetType="TabItem" BasedOn="{StaticResource MetroTabItem}" x:Key="MetroLightTabItem">。 - Rich
@Rich 我们能否添加自己的颜色主题而无需重新编译任何dll文件?编辑:没关系,答案是肯定的 - 我在GitHub上找到了XAML文件,并制作了自己的资源字典,将其添加到合并的字典中。 - erotavlas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接