5

我正在使用 BitmapImage 类在 WPF 中加载图像。当我为 UriSource 提供绝对路径时,我的代码运行良好,但当我尝试使用相对路径时却不行。

我的 XAML 是:

<Image Width="50" Name="MemberImage" HorizontalAlignment="Left">
    <Image.Source>
        <BitmapImage DecodePixelWidth="50" UriSource="questionmark.jpg" />
    </Image.Source>
</Image>

questionmark.jpg 被添加到项目中,并将资源的构建操作和复制到输出目录设置为始终复制。我得到的错误是“文件 [文件名] 不是项目的一部分,或者它的‘构建操作’属性未设置为‘资源’”。当我对 UriSource 使用绝对路径时,这很有效,但显然不行。

我应该如何在 XAML 中定义我的 UriSource?

4

3 回答 3

11

我认为一旦图像在资源中,您就不需要将图像复制到输出目录。

正确的指定方式是

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

只需更换

ApplicationNamespace使用您的应用程序命名空间

Images/App/image.png与您在项目中的图像路径

于 2013-07-10T16:10:25.343 回答
2

属性中具有以下选项的图像文件
Build Action=Content
Copy to Output Directory=Copy if new

<BitmapImage x:Key="QuestionMark" UriSource="pack://siteoforigin:,,,/questionmark.png"/>


参考:
Xaml - Bitmap UriSource - 绝对路径有效,相对路径无效,为什么?

于 2015-05-06T19:39:19.880 回答
0

我无法在我的计算机上重现该问题:

  • 我通过在项目菜单中选择添加现有项目来添加 jpg
  • 然后我将其 Build Action 设置为 Resource 并将 Copy to Output 目录设置为 always。
  • 我的 XAML 是一样的。

即使在移动 .exe 并重命名 jpg 之后,也可以在这里完美运行。一定有别的东西在咬你!

于 2010-07-05T20:33:55.013 回答