Q120. App.xamlで定義したリソースを動的に変更したい
A.App.Current.Resources で、App.xaml に定義したリソースを参照できるので、リソースの中身をコードビハインドでごっそり入れ替えてしまえばいいです。
久々のWPFネタです。最近某所から要求があったので、少しサンプルを考えてみました。
TextBlock と Button だけ貼り付けた簡単な画面です。TextBlock のスタイルは App.xaml 内で定義されたリソースを設定してます。
次に画面の XAML です。
上記 XAML の 22行目では TextBlock のスタイルを DynamicResource を使って指定してます。DynamicResource は名前どおりの動的リソース参照で、スタイルを動的に変更したい場合に使用します。
関連項目:DynamicResource のマークアップ拡張機能
最後にコードビハインドです。Button.Click イベント内で App.xaml 内で定義したリソースをごっそり入れ替えてしまいます。