求助:如何在.NET Core WPF中显示引用项目内的图片?
解决.NET Core WPF引用.NET Framework类库加载图片失败的问题
1. 检查类库中图片的属性设置
- 右键类库中
Images/image1.jpg,选择属性 - 将生成操作设置为
Resource(WPF资源需用此设置,而非Embedded Resource) - 确保复制到输出目录设置为
不复制(资源会嵌入程序集,无需单独复制)
2. 确认Pack URI的正确写法
引用外部类库资源时,Pack URI必须指定类库程序集名称,格式如下:
<Image Source="pack://application:,,,/CH07.ResourceLibrary;component/Images/image1.jpg" />
注意事项:
CH07.ResourceLibrary需与类库项目的AssemblyName完全一致(可查看类库.csproj文件中的<AssemblyName>节点);component是固定标识,用于指向程序集内的资源路径- 路径区分大小写,需与实际文件夹、文件名完全匹配
3. 验证类库的引用方式
- 确保主项目采用项目引用类库,而非直接引用dll文件
- 检查主项目.csproj中的引用节点是否正确:
<ProjectReference Include="..\CH07.ResourceLibrary\CH07.ResourceLibrary.csproj"> <Project>{类库的GUID}</Project> <Name>CH07.ResourceLibrary</Name> </ProjectReference>
4. 额外排查点
- 若类库目标.NET Framework版本过高,可能与.NET Core WPF存在兼容性问题,建议降级至.NET Framework 4.7.2及以上(.NET Core 3.0+对该版本兼容性更佳)
- 手动删除主项目和类库的
bin/obj文件夹,再重新生成整个解决方案 - 尝试用代码加载图片排查XAML问题:
var uri = new Uri("pack://application:,,,/CH07.ResourceLibrary;component/Images/image1.jpg"); var bitmap = new BitmapImage(uri); imageControl.Source = bitmap;
若代码加载失败,查看调试输出的错误信息,通常会明确提示资源找不到的具体原因
内容的提问来源于stack exchange,提问作者Ifiok Ekott
相关产品推荐
相关产品推荐

