pack:// application:,,, / ResourceFile.xaml永不工作

时间:2014-03-09 22:57:40

标签: .net wpf resourcedictionary

我从来没有能够使这种格式的引用成为资源字典。我错过了什么。

情景:

在其中创建和组装一些用户控件。
在root上有文件 {root} /Themes/ColorThemes.xaml
ColorThemes.xaml文件的构建操作设置为Resource 然后在xaml文件中进一步向下说出 {root} /Controls/ButtonStyles/Themes/ButtonThemes.xaml (注意路径只是一个例子) 在这个文件中我有以下代码:

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="pack://application:,,,/Themes/ColorThemes.xaml"/>
</ResourceDictionary.MergedDictionaries>

至于documentation状态这应该有效(据我所知),而我在设计师时似乎很好(所有颜色加载等)然而当我然后去编译我的应用程序并运行它我得到此错误{“无法找到资源'themes / colorthemes.xaml'。”}这很奇怪,因为它似乎在构建器中使用得很好。所以我很安静,因为它似乎与文件不符。
所以,如果有人能向我解释我错过了什么:)

注意:如果我将之前的代码更改为

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="../../../Themes/ColorThemes.xaml"/>
</ResourceDictionary.MergedDictionaries>

它工作正常,但对于cleanese pack:// application:。

2 个答案:

答案 0 :(得分:14)

尝试:

pack://application:,,,/YOURNAMESPACEHERE;component/Themes/ColorThemes.xaml

答案 1 :(得分:7)

无法重现您的问题。所有这些变化都很好:

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="pack://application:,,,/Themes/ColorThemes.xaml"/>
    <ResourceDictionary Source="/Themes/ColorThemes.xaml"/>
    <ResourceDictionary Source="../../Themes/ColorThemes.xaml"/>
</ResourceDictionary.MergedDictionaries>

请注意,pack://application:,,,是可选的,/是指当前程序集的根目录。

请提供完整的最小例子,以便重现您的问题。