2014-01-26 2 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

BaseLight 대신 BaseDark을 사용해보십시오. 이 라인을 변경하려고이에

<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 스타일이 아님을 알 수 있습니다. 모든 컨트롤러가 Metro에 있습니다. 나는 이것을 조사하고있다. 어떤 단서? –