UWPアプリでテーマ(ライトテーマorダークテーマ)を取得・設定するには

目次

  1. 適用されているテーマを取得する
    1. アプリのテーマを取得する
    2. コントロールのテーマを取得する
  2. テーマを設定する
    1. アプリのテーマを設定する
    2. コントロールのテーマを設定する
  3. サンプルアプリケーション

1.適用されているテーマを取得する

1.1.アプリのテーマを取得する

アプリのテーマを取得するには、ApplicationクラスのRequestedThemeプロパティを使用します。

ApplicationTheme appTheme = Application.Current.RequestedTheme;

ApplicationTheme型は次のように宣言されています。

public enum ApplicationTheme
{
    Light = 0,
    Dark = 1
}

アプリのテーマがライトテーマのときは「Lright」、ダークテーマのときは「Dark」になります。

1.2.コントロールのテーマを取得する

コントロールのテーマを取得するには、FrameworkElementクラスのRequestedThemeプロパティを使用します。

ElementTheme eleTheme = StackPanel.RequestedTheme;

ElementTheme型は次のように宣言されています。

public enum ElementTheme
{
    Default = 0,
    Light = 1,
    Dark = 2
}

「Default」のときは、Application.RequestedThemeの値が使用されます。

2.テーマを設定する

2.1.アプリのテーマを設定する

アプリのテーマを設定するには、ApplicationクラスのRequestedThemeプロパティにテーマ(ApplicationTheme)の値を設定します。

Application.Current.RequestedTheme = ApplicationTheme.Dark;

アプリのテーマは起動時にのみ設定できます。実行中は設定できません。

sealed partial class App : Application
{
    public App()
    {
        this.InitializeComponent();
        this.Suspending += OnSuspending;
        // ダークテーマに設定する
        Application.Current.RequestedTheme = ApplicationTheme.Dark;
    }

2.2.コントロールのテーマを設定する

コントロールのテーマを取得するには、FrameworkElementクラスのRequestedThemeプロパティにテーマ(ElementTheme)の値を設定します。

コントロールのテーマは、アプリの実行中に設定できます。

StackPanel.RequestedTheme = ElementTheme.Light;

3.サンプルアプリケーション

アプリの実行中にStackPanelのテーマを変更するサンプルアプリケーションです。
ソースコードもダウンロードできます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください