【发布时间】:2012-11-30 19:07:17
【问题描述】:
资源字典
2010 年 3 月 11 日上午 10:56 |
我有两个不同的项目。我使用添加现有项目添加为链接链接了一个资源目录。
当它是链接文件时,Silverlight 看不到资源字典并给我一个超出范围的错误。
有任何解决方法或更好的方法在两个项目中使用同一个文件吗?
【问题讨论】:
标签: silverlight
资源字典
2010 年 3 月 11 日上午 10:56 |
我有两个不同的项目。我使用添加现有项目添加为链接链接了一个资源目录。
当它是链接文件时,Silverlight 看不到资源字典并给我一个超出范围的错误。
有任何解决方法或更好的方法在两个项目中使用同一个文件吗?
【问题讨论】:
标签: silverlight
我会正常引用具有资源字典的程序集(不要将其作为链接添加),然后使用Merged Dictionaries 将其引入应用程序。您可以在外部程序集中指定资源字典以合并到当前应用程序或页面的资源字典中。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/SharedThemeAssembly;component/MyStyles.xaml"/>
...other ResourceDictionaries to merge in...
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
我在这里回答了一个类似的 SO 问题: Silverlight: Multiple project sharing the same style files
【讨论】:
如果共享是在 silverlight 和 WPF 项目之间,我发现将文件放在 silverlight 项目中,并将其链接到 WPF 项目,而不是相反。
换句话说,文件被移动到 silverlight 项目,而不是 WPF 项目,然后“链接”到 WPF 项目。
还要记住当文件被 WPF 引用时,因为它是链接的,所以你需要更改引用 URL,就好像它在根目录中一样,如下所示:
<ResourceDictionary
Source="pack://application:,,,/AssemblyName;component/DictionaryName.xaml" />
删除上面的文件夹有效,下面的 uri 不起作用:
<ResourceDictionary
Source="pack://application:,,,/AssemblyName;component/FOLDER/DictionaryName.xaml" />
【讨论】: