我正在使用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?

最佳答案

我认为您不需要将镜像复制到资源中的输出目录中。

正确的指定方式是

<BitmapImage
    x:Key  = "Logo"
 UriSource = "pack://application:,,,/ApplicationNamespace;component/Images/App/image.png"
/>

只需更换
ApplicationNamespace与您的应用程序 namespace


Images/App/image.png和项目中的图像路径

10-08 17:42