You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在XAML中设置Image的源为程序启动目录下的图片?

解决WPF中无需后台代码的相对图片路径问题

没问题,我来帮你搞定这个路径问题!不用后台代码完全可以实现,核心就是用相对路径或者WPF官方推荐的Pack URI,这样就算整个父目录移动,只要你的文件夹结构保持不变(程序根目录和Image文件夹同级),图片就能正常加载。

下面是两种可行的方案:

方案一:直接使用相对路径

假设你的程序运行目录(也就是EXE所在的文件夹)和Image文件夹是同级的,直接在XAML里这么写就行:

<Image Source="Image/Image.png" />

⚠️ 关键注意事项:

  • 一定要在你的项目中,把Image文件夹下的Image.png的复制到输出目录属性设置为「如果较新则复制」或者「始终复制」。这样编译的时候,Image文件夹会被自动复制到EXE所在的目录,保证相对路径能正确找到文件。

方案二:使用WPF Pack URI格式

如果你想更规范,或者需要兼容更复杂的场景,可以用WPF专门的Pack URI:

<Image Source="pack://application:,,,/Image/Image.png" />

这里pack://application:,,,代表当前应用的根目录,后面的/Image/Image.png就是相对于根目录的路径,同样需要确保Image文件夹和EXE同级(记得设置复制属性)。

额外补充:嵌入资源方式

如果你的Image文件夹是项目的一部分,不需要外部修改图片,也可以把图片的Build Action设置为「Resource」,这时候用这种Pack URI:

<Image Source="pack://application:,,,/你的项目名称;component/Image/Image.png" />

这种方式下图片会被嵌入到程序集里,不需要复制Image文件夹,适合固定不变的资源图片。

内容的提问来源于stack exchange,提问作者Null Reference Exception

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:20:27