2017-10-28 6 views
0

私は、APIレスポンスに基づいて動的にテーマを設定するアプリケーションを設計しています。私はプログラムで他のアプリケーションのためのリソース辞書の色を設定することができましたが、ボタンとAppBarButtonのホバーを取得し、カラーを自分のカラースキームに合わせて設定する方法を見つけようとしています。私はこれまで、必要な要素のRequestedThemeプロパティをハードコーディングしてこれを変更しました。UWP RequestedTheme in resource dictionary

プログラムで設定できるリソースディクショナリの静的リソースセットにRequestedThemeプロパティをバインドする方法はありますか?可能であれば、必要に応じてボタンのテーマを達成することにオープンしていますが、可能であれば各ページのローカル変数にバインドする必要はありません。

ありがとうございます!

public enum MyTheme 
{ 
    // 
    // Summary: 
    //  Use the Application.RequestedTheme value for the element. This is the default. 
    Default = 0, 
    // 
    // Summary: 
    //  Use the **Light** default theme. 
    Light = 1, 
    // 
    // Summary: 
    //  Use the **Dark** default theme. 
    Dark = 2 
} 

次に、リソースディクショナリに、あなたは別のテーマリソース定義できます:XAMLページで

<Application.Resources> 
    <local:MyTheme x:Key="MyTheme">Light</local:MyTheme> 
</Application.Resources> 

を、あなたは可能性がありますが、次のようなカスタムテーマのリソースクラスを定義することができ

答えて

1

それへの参照:

<Button Content="test" RequestedTheme="{StaticResource MyTheme}"></Button> 

コード内の値を変更することができます:

App.Current.Resources["MyTheme"] = isThemeDark ? "Dark" : "Light"; 
+0

私はライトリソースにバインドしていますが、プログラムを実行している間に変更したいのであれば、プログラムごとにXAMLをプログラムごとに変更する必要はありません。 –

+0

うん。プログラミングによって変更する必要があります。 –