如何在复合 WPF 应用程序中共享 ResourceDictionaries?
How to share ResourceDictionaries in composite WPF Application?
已使用 Unity Ioc(无 Prism)构建复合 WPF 应用程序。
我所有的资源(样式、模板、图片)都存储在一个模块(基础设施)中,并合并到 Shell-模块的 App.xaml.
中
在其他模块中,我将其用作 StaticResource。当我启动项目时一切正常,但在 VisualStudio Designer 中我看不到我的样式:'the resource xyz could not be resolved'.
我应该如何配置 VS 以在设计时查看所有资源?
可能的解决方案:
我可以合并每个模块中的所有内容,但是每个资源都会被加载多个。我也可以编写自己的 ResourceDictionary 实现(例如:here),但我过去常常到处合并资源——我会避免这种情况。
我找到了一个复合应用程序的 Prism 参考解决方案。我不知道如何,但它在没有自定义 ResourceDictionary 并且没有在每个模块中合并它的情况下工作。 VS Designer 显示一切,尽管 XAML 编辑器仍然说 "the resource xyz could not be resolved"
问题:它是 Prism 的功能吗?或者隐藏了一些配置?
解决方案很简单(与 Prism 无关)。
所有资源都应该在Shell模块中定义(而不是在基础设施模块中)。
然后所有模块都应该在Shell模块项目中被引用。
无需合并每个模块中的资源。
每个模块只知道高级模块,只有 shell 知道所有人。
已使用 Unity Ioc(无 Prism)构建复合 WPF 应用程序。 我所有的资源(样式、模板、图片)都存储在一个模块(基础设施)中,并合并到 Shell-模块的 App.xaml.
中在其他模块中,我将其用作 StaticResource。当我启动项目时一切正常,但在 VisualStudio Designer 中我看不到我的样式:'the resource xyz could not be resolved'.
我应该如何配置 VS 以在设计时查看所有资源?
可能的解决方案:
我可以合并每个模块中的所有内容,但是每个资源都会被加载多个。我也可以编写自己的 ResourceDictionary 实现(例如:here),但我过去常常到处合并资源——我会避免这种情况。
我找到了一个复合应用程序的 Prism 参考解决方案。我不知道如何,但它在没有自定义 ResourceDictionary 并且没有在每个模块中合并它的情况下工作。 VS Designer 显示一切,尽管 XAML 编辑器仍然说 "the resource xyz could not be resolved" 问题:它是 Prism 的功能吗?或者隐藏了一些配置?
解决方案很简单(与 Prism 无关)。
所有资源都应该在Shell模块中定义(而不是在基础设施模块中)。 然后所有模块都应该在Shell模块项目中被引用。
无需合并每个模块中的资源。 每个模块只知道高级模块,只有 shell 知道所有人。