更新メインアプリケーションのテーマをXAMLで明示的に設定せずにダイアログボックスに設定するにはどうすればよいですか?
私は間違いを犯したと恥ずかしいです。エラーは、私のテーマが私がテストに使用していた要素をスタイルしていないということでした。もちろん、私は適用されたスタイルを見ていませんでした。
しかし、この質問に対する回答は、あるUserControlから別のUserControlにリソースを明示的に設定する方法を示しています...興味深いです。
以下に説明する方法でアプリケーションにリソースを設定すると、実際には結果として得られるアプリケーションのすべてのユーザーコントロールテーマが暗黙的に設定されます。
メインアプリケーションクラスでResourceDictionaryとして設定されているテーマを使用しています。私のメインウィンドウは、このテーマを暗黙的に使用して自分自身をスタイルすると思います。私はしかし、ダイアログを表示すると
<Application>
<Application.Resources>
<ResourceDictionary Source="Themes/ExpressionDark.xaml" />
以下のコメントが間違っている、とすべてが暗黙のうちに
をスタイル設定され、これはスタイルされていません。
DialogBox dialog = new DialogBox();
dialog.ShowDialog();
DialogBoxのXAMLで明示的にスタイルを指定せずにこれを暗黙的に行う方法はありますか?
編集
私は、次の方法でリソースを設定しようとしました。彼らは働かなかった。
Window main = App.Current.Windows[0];
dialog.Resources = main.Resources;
dialog.Owner = main;
また、元のリソースが定義されているメインApp ...から設定してみました。
dialog.Resources = App.Current.Resources;
OKが、それが見えます。あなたの応答をありがとう、これも同様に動作します。 – Nicholas
そうですね、ちょっと試しましたが、あなたは正しいです、すべてのウィンドウで動作します。 –