LightなテーマとDarkなテーマでリソースを切り替えるにはx:Keyで指定するのが楽です。
こんな感じに使います。
<ResourceDictionary> <ResourceDictionary.ThemeDictionaries> <ResourceDictionary x:Key="Dark"> <!-- Darkなリソースをここへ --> </ResourceDictionary> <ResourceDictionary x:Key="Light"> <!-- Lightなリソースをここへ --> </ResourceDictionary> </ResourceDictionary.ThemeDictionaries> </ResourceDictionary>
App.xamlとかに書いておけばStaticResourceまたはThemeResourceマークアップ拡張で参照できます。ちなみに、StaticResourceだとWindowsPhoneでテーマカラー変えたときに反応しないのでThemeResourceをおすすめします。
ThemeDictionariesの中はx:Keyが指定されたResourceDictionaryであればよいので、Sourceで別のファイルを参照もできます。
<ResourceDictionary> <ResourceDictionary.ThemeDictionaries> <ResourceDictionary x:Key="Dark" Source="/Themes/Dark.xaml" /> <ResourceDictionary x:Key="Light" Source="/Themes/Light.xaml" /> </ResourceDictionary.ThemeDictionaries> </ResourceDictionary>
こうしておくと、リソースがぐっちゃぐちゃにならないのでおすすめです。