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

WPF窗口背景图片URI格式错误:报错‘Invalid URI’如何解决?

解决WPF设置背景图片时的URI格式错误问题

嘿,这个坑我之前踩过!你遇到的「Invalid URI: The format of the URI could not be determined」错误,核心原因是URI类型和路径写法不匹配——你指定了UriKind.Absolute(绝对URI),但传入的却是相对路径的格式,系统自然没法解析。

下面给你两种靠谱的解决思路:

方案一:使用相对路径(更简单)

因为你的图片已经放在程序运行目录(bin\debug)下的StoredData文件夹里,直接用相对路径即可,同时把UriKind改成Relative或者省略(默认是RelativeOrAbsolute):

InitializeComponent();
ImageBrush myBrush = new ImageBrush();
// 注意去掉开头的反斜杠,直接写相对路径
myBrush.ImageSource = new BitmapImage(new Uri("StoredData/login_wallpaper.jpg", UriKind.Relative));
this.Background = myBrush;

方案二:构造完整绝对路径(更稳妥)

如果你一定要用绝对URI,需要先获取程序当前的运行目录,再拼接图片的完整路径,避免路径硬编码的问题:

InitializeComponent();
ImageBrush myBrush = new ImageBrush();
// 获取程序运行的根目录(也就是bin\debug)
string appDir = System.AppDomain.CurrentDomain.BaseDirectory;
// 拼接图片的完整路径,推荐用Path.Combine避免路径分隔符的问题
string imageFullPath = System.IO.Path.Combine(appDir, "StoredData", "login_wallpaper.jpg");
// 用绝对URI加载图片
myBrush.ImageSource = new BitmapImage(new Uri(imageFullPath, UriKind.Absolute));
this.Background = myBrush;

关键提醒!

别忘了检查图片文件的复制到输出目录属性:右键图片文件→属性→复制到输出目录,选择「如果较新则复制」或者「始终复制」。否则图片不会被自动复制到bin\debug\StoredData文件夹里,就算路径写对了也找不到图片哦!

内容的提问来源于stack exchange,提问作者user9536923

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:30:03