3

generic.xaml で定義されたリソースは、単純に解決できないことに気付きました

this.TryFindResource("someKey");

代わりに、次の方法でのみ参照できます

this.TryFindResource(new ComponentResourceKey(typeof(SomeTypeInAssembly), "someKey"))

ただし、generic.xaml の既定のスタイルを持つ別のアセンブリにカスタム コントロールがあるとします。ComponentResourceKey を渡さなくても、WPF アプリケーション内からこれが機能するのはなぜでしょうか?

this.TryFindResource(typeof(CustomControl));

たとえば、参照される複数のコントロール ライブラリに複数の themes\generic.xaml リソース ディクショナリがある場合は特に、どの generic.xaml を探すべきかをどのように判断しますか?

アプリケーションで参照されているすべてのアセンブリのすべてのテーマ ディクショナリのコレクションを取得する方法はありますか? (たとえば、アプリケーションによって参照される複数のコントロール ライブラリがあり、それぞれに独自の generic.xaml がある場合)

WPF は、任意の時点でアプリケーションのスコープ内にあるすべてのテーマ/generic.xaml 辞書の存在を認識していますか? テーマ ディクショナリは、ComponentResourceKey を指定したときにのみ、現在の WPF アプリケーションによって「検出」されるという印象を受けます。これは、WPF でどこを見ればよいかを示しています (しかし、なぜ TryFindResource(typeof(CustomControl)) が機能するのでしょうか?)

4

0 に答える 0