【问题标题】:Applying MahApps.Metro Dark theme应用 MahApps.Metro Dark 主题
【发布时间】:2014-01-26 11:46:36
【问题描述】:

我对 WPF 比较陌生,我正在尝试将 Windows Metro Dark 主题应用于我的整个应用程序。

我在我的 Apps.xaml 中使用了以下内容,我可以正确看到 Windows Metro Light 主题。

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

现在我想将主题更改为深色。我知道我可以随时使用,

ThemeManager.ChangeTheme()

但我相信应该有一种方法可以使 XAML 对应用程序的所有窗口都有效。

我的问题:有人可以指出我如何在源代码中不使用 ThemeManager 的情况下做到这一点吗?

【问题讨论】:

标签: c# .net wpf xaml mahapps.metro


【解决方案1】:

尝试使用BaseDark 而不是BaseLight。尝试更改此行:

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

到这里:

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

这对我有用。我的应用程序使用 MahApps BaseDark 和 BaseLight 口音的屏幕截图:

BaseDark BaseLight

【讨论】:

  • 太好了。非常感谢。这是我想的那个?但还有一个问题。如何获取可用的口音列表? :-)
  • 好吧,我怀疑口音是尚未记录的部分(在任何地方都找不到有关它的文档)。但是你可以通过查看源here 来获得口音列表
  • 还有一个有趣的观察。我从父窗口创建一个新窗口。新的 childWindow().show()。主题已被应用,但我可以看到标题栏不是 Metro 风格。所有的控制器都在 Metro。我正在对此进行调查。有什么线索吗?
  • 发现错误。一个愚蠢的。我忘记添加 Controls:MetroWindow 标签。接受答案。
猜你喜欢
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-09
  • 1970-01-01
  • 2021-07-17
  • 2014-10-02
  • 2013-02-08
相关资源
最近更新 更多