以编程方式添加到WPF中的Window.Resources

有没有办法在Window级别而不是Application级别添加ResourceDictionary?

我看到很多这样的例子:

Application.Current.Resources.MergedDictionaries.Add(myResourceDictionary); 

但是,没有像我期望的那样,例如:

 Window.Resources.MergedDictionaries.Add(myResourceDictionary); 

提前致谢,

你做不到:

 Window.Resources 

但是,你可以这样做:

 this.Resources.MergedDictionaries.Add(myResourceDictionary); 

Resources是FrameworkElement的一个属性,由Application和Window(以及WPF中的大多数其他用户界面类)共享。 但是,它是一个实例属性,而不是静态属性,因此您需要使用特定实例的资源。 当您键入“Window.Resources”时,您试图添加到“窗口”类型,而不是特定的窗口。

这适用于您的Application行,因为Application.Current返回Application的当前实例,因此您正在使用正确的特定实例(不是类型)。