如何在ResourceDictionary的源代码中设置相对路径/ Uri

时间:2012-08-22 03:58:25

标签: wpf xaml resourcedictionary prism-4

我正在尝试引用MergedDictionaries.SharedStyles项目,该项目包含必须使用全部应用程序的所有样式。所以这里我在不同的文件夹下有不同的样式作为资源字典。所以最后我将它们合并到了AllSharedStyles.xaml中,并在Styles项目级别进行了。

现在我在解决方案级别有另一个ResourceDictionary<>它指的是AllSharedStyles.xaml资源字典<<>>。此ResourceDictionary作为链接添加到解决方案中的所有模块。

这里的问题是在我的SharedResourceDictionary中,我有以下MergedDictionaries

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/MergedDictionaries.SharedStyles;component/AllSharedStyles.xaml" />
    <ResourceDictionary Source="/View/LocalResource.xaml" /> 
</ResourceDictionary.MergedDictionaries>

Project architecture

我首先提到公共资源,然后是我的本地,以便覆盖(仅在需要时)任何特定于模块的样式。

现在,当我运行应用程序时,它会抱怨

'Set property 'System.Windows.ResourceDictionary.Source' threw an exception.' Line number '5' and line position '10'.

这是错误信息。

根据我的理解,它正在寻找适当的参考。我还尝试使用Pack URL ref:Pack URLss。 这是包网址:

 <ResourceDictionary Source="pack://application:,,,/MergedResourceDictionaries.Styles;component/component/AllSharedStyles.xaml" />

所以关于如何在这里设置相对路径的任何建议????

对不起我对问题的描述/投射

1 个答案:

答案 0 :(得分:21)

最后制定出解决方案:

<ResourceDictionary Source="../SharedResourceDictionary.xaml" /> 

将其更改为相对路径并给出根路径。