是否可以在多个项目之间共享ResourceDictionary文件?
如果我在一个项目中有ResourceDictionary,是否可以创建另一个使用第一个项目中定义的资源的项目?请注意,这两个项目都是WPF应用程序,而不是ControlLibraries。是否可以在多个项目之间共享ResourceDictionary文件?
谢谢!
是的,当然这是可能的,只要项目B有一个参考项目A.
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Project A;component/YourSubFolder/YourResourceFile.xaml" />
</ResourceDictionary.MergedDictionaries>
然后,你可以使用YourResourceFile.xaml定义的资源。
哦,快点。我正在尝试一下!谢谢!! – Pwninstein 2009-06-03 20:32:41
我不知道这个 - 很酷的把戏! – 2009-06-04 14:46:34
如果项目不共享参考,会发生什么情况?在我的情况下,我使用PRISM并在Shell中声明样式。我希望能够重用一些定义的颜色。 – R4cOON 2009-07-31 13:07:59
我发现我不得不引用程序集本身而不使用项目名称。我也不需要使用pack:///语法来使其工作。
这个答案的重复问题,指定要使用的格式(我可以验证这句法工作在.NET 4.0): https://stackoverflow.com/a/10216253/1260563
具体(因为我总是忘了组成部分,认为它是一个文件夹的人使用):
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/<YourAssemblyName>;component/<YourReferencedFileHere.xaml>" />
</ResourceDictionary.MergedDictionaries>
所以,如果你有一个装配Abc.Def.dll并在DLL在根级别称为Xyz.xaml一个文件,你可以使用:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Abc.Def;component/Xyz.xaml" />
</ResourceDictionary.MergedDictionaries>
注意:Resharper 7指出我必须引用程序集本身。
感谢您提供具体示例并指出路径组件部分的必要性。这比我偶然发现的其他六种解决方案更有帮助。 – 2016-07-09 12:27:39
重复? http://stackoverflow.com/questions/338056/wpf-resource-dictionary-in-a-separate-assembly – 2012-01-25 19:52:09