デフォルトでは、UWPアプリは2つのテーマ、つまりLight
とDark
をサポートしています。
あなたがいずれかの値のいずれか(それがデフォルトで
Light
に設定されている)、またはアプリケーションのコンストラクタで
App.xaml.cs
で
RequestedTheme = ApplicationTheme.Light;
を使用して(例外が発生しますどこでも、後でそれを変更する
RequestedTheme
プロパティを設定することにより
App.xaml
でアプリのテーマを指定することができます
スローされる)。
RequestedTheme
プロパティを設定しない場合は、W10モバイルデバイスまたは記念日の更新および新しいバージョンを実行しているW10モバイルPCのSettings > Personalization > Colors
に設定されたテーマが反映されます。古いWindows 10のデスクトップバージョンではLight
になります。
FrameworkElement
のテーマは、デフォルトでElementTheme.Default
に設定され、そのテーマをその親から継承するように設定することもできます。カラーカスタマイズUWPsについては
<StackPanel RequestedTheme="Light">
<TextBlock>Text using light theme.</TextBlock>
<TextBlock RequestedTheme="Dark">Text using dark theme.</TextBlock>
</StackPanel>
通常、あまりにもSettings > Personalization > Colors
でユーザーが指定したアクセントカラーを使用します。
設定アプリで設定したテーマとアクセントの色を、一部の要素のカスタム色を指定するには、ThemeResource
を使用する必要があります。あらかじめ定義されたXAMLテーマリソースを使用できます。たとえば、このボーダーの背景色は、Light
テーマは#FF000000
、Dark
テーマになります。
<Border Background="{ThemeResource SystemControlBackgroundAltHighBrush}"/>
それとも、設定アプリに選ばれたアクセントカラーが反映されますSystemControlBackgroundAccentBrush
を使用することができます。
各テーマの色を指定する独自のtheme dictionary
を書くこともできます。ここでは、単純なテーマ辞書の例である:
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Light">
<SolidColorBrush x:Key="MyButtonBackgroundThemeBrush" Color="White"/
<SolidColorBrush x:Key="MyButtonForegroundThemeBrush" Color="Black"/>
</ResourceDictionary>
<ResourceDictionary x:Key="Dark">
<SolidColorBrush x:Key="MyButtonBackgroundThemeBrush" Color="Black"/>
<SolidColorBrush x:Key="MyButtonForegroundThemeBrush" Color="White"/>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
あなたはこのようにそれを使用します。
<Button Content="Themed button"
Background="{ThemeResource MyButtonBackgroundThemeBrush}"
Foreground="{ThemeResource MyButtonForegroundThemeBrush}"/
/>
ボタンの背景がWhite
なり、前景はBlack
しばらくLight
テーマでBlack
とWhite
になりますDark
テーマの
ThemeResource
、テーマ、HighContrast
テーマとデフォルトのテーマリソースhereについて詳しく読むことができます。
thisチャンネル9のビデオは、HighContrast
のテーマでも説明されているXAMLテーマです。