【发布时间】:2015-10-21 09:30:43
【问题描述】:
我有一个与其他几个项目通用的类库项目。它的程序集名称是“MyCompany”,它的默认命名空间也是“”。
然后在这些其他项目之一(命名空间“MyCompany.Something”)中,我引用了 dll,并且我想使用“MyCompany”中的资源字典。
我发现了这个:Add ResourceDictionary to class library
所以我完全按照它说的做了,我位于“MyCompany”根目录的 xaml 文件被命名为“Recursos.xaml”,构建操作设置为 Resource,而不是复制和空白自定义工具和自定义工具命名空间,内容如下:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
<ResourceDictionary Source="pack://application:,,,/Resources/Icons.xaml"/>
</ResourceDictionary.MergedDictionaries>
-- some other styles...
</ResourceDictionary>
然后,在我的 WPF 应用程序项目中,我在 App.xaml 中有以下内容:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MyCompany;component/Recursos.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
刚刚添加了 Controls.xaml 用于测试目的。那个有效,但我的无效:
查找资源字典"pack://application:,,,/MyCompany;component/Recursos.xaml"时出错
所以我不知道为什么它不识别它。该参考有效,因为我可以使用其中的每个类。
【问题讨论】:
-
嗨,试试
<ResourceDictionary Source="/Isaval;component/Recursos.xaml"/>并确保资源字典的构建操作是Page -
@rshepp 仍然无法正常工作...
-
Resources.xaml 中可能存在错误,您是否将其他字典合并到它上面?
-
“继续”是什么意思? Recursos.xaml 的完整代码在那里,并且没有任何错误。
-
Resources.xaml 是否将其他字典合并到自身中?就像 Application.Resources 合并它一样。