如果我在一个项目中有资源范围,是否可以创建另一个使用第一个项目中定义的资源的项目?请注意,两个项目都是WPF应用程序,而不是控制元素。

谢谢!!

有帮助吗?

解决方案

是的,当然,只要项目B有参考项目A。

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/Project A;component/YourSubFolder/YourResourceFile.xaml" />
</ResourceDictionary.MergedDictionaries>

然后,您可以使用您的ResourceFile.xAML中定义的资源。

其他提示

我发现我必须参考组件本身,而不使用项目名称。我也不需要使用pack:///语法才能使它起作用。

重复问题上的答案指定要使用的格式(我可以验证该语法在.NET 4.0中起作用):https://stackoverflow.com/a/10216253/1260563

具体(因为我总是忘记组件部分认为它是某人正在使用的文件夹):

<ResourceDictionary.MergedDictionaries>
   <ResourceDictionary Source="/<YourAssemblyName>;component/<YourReferencedFileHere.xaml>" />
</ResourceDictionary.MergedDictionaries>

因此,如果您有一个汇编abc.def.dll和该dll中的文件,则在root级别使用xyz.xaml,您将使用:

<ResourceDictionary.MergedDictionaries>
   <ResourceDictionary Source="/Abc.Def;component/Xyz.xaml" />
</ResourceDictionary.MergedDictionaries>

注意:Resharper 7指出我必须引用大会本身。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top