2014-01-26 99 views
11

我對WPF比較陌生,我試圖將Windows Metro Dark主題應用於我的整個應用程序。應用MahApps.Metro黑暗主題

我在我的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?

+0

您可以創建baehavior來實現這一目標。請參閱 - http://svetoslavsavov.blogspot.in/2009/07/switching-wpf-interface-themes-at.html –

+0

@RohitVats:如何找到可用的選項和路徑?通過對象瀏覽器? –

回答

18

嘗試使用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 enter image description here Baselight來 enter image description here

+0

太棒了。非常感謝你。這是我想到的那個?但還有一個問題。我如何獲得可用的口音列表? :-) –

+0

好吧,我懷疑口音是尚未記錄的部分(無法在任何地方找到關於它的文檔)。但你可以通過查看源代碼[here]獲得重音列表(https://github.com/MahApps/MahApps.Metro/tree/master/MahApps.Metro/Styles/Accents) – har07

+0

還有一個有趣的觀察。我從父窗口創建一個新窗口。新的childWindow()。show()。主題已被應用,但我可以看到標題欄不在Metro風格中。所有的控制器都在Metro。我正在調查這一點。任何線索? –

相關問題