2014-01-26 4 views
11

Я относительно новичок в WPF, и я пытаюсь применить тему Windows Metro Dark для всего моего приложения.Применение темы MahApps.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 в исходном коде?

+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

ну, я подозреваю, что акценты - это часть, которая еще не задокументирована (не может найти документацию об этом в любом месте). Но вы можете получить список акцентов, заглянув в источник [здесь] (https://github.com/MahApps/MahApps.Metro/tree/master/MahApps.Metro/Styles/Accents) – har07

+0

И одно интересное наблюдение. Я создаю новое окно из родительского окна. new childWindow(). show(). Тема была применена, но я вижу, что заголовок не находится в стиле Metro. Все контроллеры находятся в метро. Я изучаю это. Любая подсказка? –

Смежные вопросы