在单独的项目中定义 WPF 资源时,如何避免 Visual Studio 设计器错误?
我在复合 WPF 应用程序中有三个项目:主应用程序、“基础设施”库和“模块”库。主应用程序通过它们的输出 DLL 引用其他项目(这些项目不一起位于单个解决方案中)。
我ResourceDictionary
在“基础设施”库中定义了一个皮肤(a 中的一些画笔和样式)。我希望主应用程序选择一个皮肤并使其可用于整个应用程序(通过MergedDictionaries
在 App.xaml 中)。
在我的模块中,我想使用主应用程序加载的皮肤中定义的资源。如果我引用该资源,就好像它在本地可用一样:
Background={StaticResource MainBackgroundBrush}
几乎一切都按预期工作。例外情况是 Visual Studio 的设计者感到困惑并告诉我“找不到静态资源引用‘MainBackgroundBrush’”。这有效地阻止了我使用设计器。
如何ResourceDictionary
在项目中定义“皮肤”,在主应用程序中引用该皮肤,然后在模块项目中使用其资源?