WPF Image控件无法正常显示图片,仅项目存放于磁盘根目录时运行正常
问题原因
你遇到的问题是**项目存储路径包含URI特殊字符#**导致的WPF资源解析异常:
- WPF内部处理控件Source属性的路径时遵循URI标准规范,
#是URI中定义的片段标识符起始标记,解析器遇到#后会将后续内容识别为URI片段而非路径组成部分。 - 你的项目原路径为
D:\Programming\C#\Practice\WpfImageTest,路径中的C#携带的#会触发上述截断逻辑,导致相对路径/Resources/Images/Chen.png拼接解析后的实际地址错误,无法定位到图片文件。 - 当你将项目移动到磁盘根目录后,路径不存在
#字符,URI解析逻辑正常,相对路径可以正确映射到你设置为Content、始终复制的图片文件,因此可以正常显示。
解决方案
你可以选择以下任意一种方式修复问题:
- 调整项目存储路径,移除路径中的
#字符,比如将C#文件夹重命名为CSharp即可从根源避免解析异常。 - 改用WPF标准Pack URI格式指定资源路径,消除相对路径解析的歧义:
<Image Width="300" Height="300" Source="pack://application:,,,/Resources/Images/Chen.png"/>
- 如需保留现有路径配置,可在后台代码中通过本地绝对路径加载图片:
// 后台代码加载示例 var imageFullPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources\Images\Chen.png"); TargetImage.Source = new BitmapImage(new Uri(imageFullPath, UriKind.Absolute));
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

