我已经阅读了一段时间,但我似乎找不到可以帮助我的答案,所以我希望我能在这里有更多的运气。
在我的项目中,我有一个包含许多控件样式的库。这些样式使用资源作为静态资源。所以“资源树”基本上是这样的:
- 主题.xaml
- 大小资源.xaml
- 颜色资源.xaml
- ControlStyles.xaml
- 控件1.xaml
- Control2.xaml
Theme.xaml 合并 SizeResources、ColorResources 和 ControlStyles。ControlStyles 合并特定控件的所有 xamls。
现在在我的应用程序中,我想应用该主题,因此 OnStartup 我将 Theme.xaml 添加到我的 Application.Current.Resources.MergedDictionaries。效果很好,所有的钥匙都在那里。当我现在尝试使用控件时,我得到一个异常,例如找不到大小或颜色资源。具体例子:
我有一个特殊的按钮,它的背景颜色在 ColorResources 中定义,我的 ButtonStyle 将此资源用作静态资源。当我在我的应用程序项目中使用该按钮时,我得到一个异常,即找不到背景资源。当我在 control1.xaml 中将静态资源更改为动态资源时,它就可以工作了。
任何想法为什么我不能用静态资源做到这一点?据我了解,静态也应该起作用。