3

我注意到 generic.xaml 中定义的资源不能简单地通过

this.TryFindResource("someKey");

相反,它们只能通过以下方式引用

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

但是,假设我在另一个程序集中有一个自定义控件,该控件在 generic.xaml 中具有默认样式......这是如何在我的 WPF 应用程序中工作的,而无需传递 ComponentResourceKey?

this.TryFindResource(typeof(CustomControl));

它如何知道要查找哪个 generic.xaml,尤其是当我在多个引用的控件库中有多个主题\generic.xaml 资源字典时?

无论如何要获取应用程序中引用的所有程序集中的所有主题词典的集合吗?(例如,您的应用程序引用了多个控件库,每个控件库都有自己的 generic.xaml)

WPF 是否甚至在任何时间点都知道应用程序范围内所有主题/generic.xaml 字典的存在?我得到的印象是,当您提供 ComponentResourceKey 时,当前 WPF 应用程序只会“发现”主题字典,这会在 WPF 中提供查找位置的线索(但是为什么 TryFindResource(typeof(CustomControl)) 起作用?)

4

0 回答 0