有没有办法在Window级别而不是Application级别添加ResourceDictionary?
我看到很多这样的例子:
Application.Current.Resources.MergedDictionaries.Add(myResourceDictionary);
但是,没有像我期望的那样,例如:
Window.Resources.MergedDictionaries.Add(myResourceDictionary);
提前致谢,
答案 0 :(得分:7)
你做不到:
Window.Resources
但是,您可以执行:
this.Resources.MergedDictionaries.Add(myResourceDictionary);
Resources是FrameworkElement的一个属性,由Application和Window(以及WPF中的大多数其他用户界面类)共享。但是,它是一个实例属性,而不是静态属性,因此您需要使用特定实例的资源。当您键入“Window.Resources”时,您试图添加到“窗口”类型,而不是添加到特定窗口。
这适用于您的应用程序行,因为Application.Current返回应用程序的当前实例,因此您正在使用正确的特定实例(而不是类型)。