WPF跨程序集引用XAML资源字典时无法定位资源问题咨询
WPF跨程序集资源字典引用报错解决方案
问题根因
Resources项目的Main.xaml作为同程序集内的资源合并入口,引用同程序集下的资源字典时多余添加了程序集标识前缀,导致跨程序集引用该合并字典时,WPF路径解析逻辑异常,无法定位到对应的资源文件。
具体修改操作
将Resources项目中Main.xaml的合并字典路径,删除Resources;component/前缀,直接使用相对于Main.xaml文件的相对路径即可,修改后代码如下:
<ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="xaml/Buttons.xaml" /> <ResourceDictionary Source="xaml/Images.xaml" /> <ResourceDictionary Source="xaml/Styles.xaml" /> <ResourceDictionary Source="xaml/Tooltips.xaml" /> </ResourceDictionary.MergedDictionaries>
额外校验项
- 确认Resources项目中所有XAML资源文件的生成操作属性设置为
Page,这是WPF资源字典的标准生成配置 - 修改完成后重新编译Resources项目,再在Buttons项目中重新引用新版Resources.dll后重新编译运行即可
内容的提问来源于stack exchange,提问作者Seated
相关产品推荐
相关产品推荐

