WPFでASP.Netタイプのテーマを実装したいと思います。ユーザーはさまざまな事前定義されたテーマを選択でき、別のテーマに切り替えることができます。
これを実装するために、テーマごとに異なるリソース辞書を作成し、必要なスタイルをキーで保存してみました。キーのコレクションはすべてのテーマで同じですが、その定義はそれぞれで異なります。
クリック時にテーマを切り替えるために以下のコードを使用しています:
var theme = Application.LoadComponent(uri) as ResourceDictionary;
Application.Current.Resources.MergedDictionaries.Clear();
Application.Current.Resources.MergedDictionaries.Add(theme);
すべてのページ/ユーザーコントロール/ウィンドウで、StaticResourceを設定し、適切なキーを適用しました。別のテーマに切り替えると、UIの次のイベントの後にのみ適用されます。
変更StaticResourceをDynamicResourceに設定すると、すぐに適用されます。
これを達成するためのアイデアをStaticResourceと共有してください。