我正在使用BitmapImage类在WPF中加载图像。当我为UriSource提供绝对路径时,我的代码工作正常,但是当我尝试使用相对路径时,我的代码无效。
我的XAML是:
<Image Width="50" Name="MemberImage" HorizontalAlignment="Left">
<Image.Source>
<BitmapImage DecodePixelWidth="50" UriSource="questionmark.jpg" />
</Image.Source>
</Image>
将questionmark.jpg添加到项目中,其中“资源构建操作”和“复制到输出目录”设置为“始终复制”。我得到的错误是“文件[文件名]不是项目的一部分,或者它的'Build Action'属性未设置为'Resource'”。当我使用UriSource的绝对路径时,这很有效,但显然不会这样做。
我应该如何在XAML中定义我的UriSource?
答案 0 :(得分:8)
我不认为你需要将图像复制到输出目录中。一旦它在资源中。
指定的正确方法是
<BitmapImage
x:Key = "Logo"
UriSource = "pack://application:,,,/ApplicationNamespace;component/Images/App/image.png"
/>
只需替换
带有应用程序命名空间的 ApplicationNamespace
和
Images/App/image.png
在项目中使用您的图片路径
答案 1 :(得分:1)
属性中具有以下选项的图像文件
构建操作=内容
复制到输出目录=如果较新则复制
<BitmapImage x:Key="QuestionMark" UriSource="pack://siteoforigin:,,,/questionmark.png"/>
参考:
Xaml - Bitmap UriSource - absolute path works, relative path does not, why?
答案 2 :(得分:0)
我无法在计算机上重现该问题:
在此处完美运行,即使在移动.exe并重命名jpg之后也是如此。别的东西必须咬你!