包括资源而不是其位置

时间:2014-06-03 19:24:38

标签: c# wpf image

<Application.Resources>
    <BitmapImage x:Key="MyImageSource" UriSource="C:\Users\nwrobinson\Pictures\skyskanlogo.jpg" />
</Application.Resources>

您好, 我对C#处理资源的方式有一个问题,我知道上面的代码是对图片的引用,但我假设在程序编译时,它会包含在其他计算机上运行的图片。相反,它只是在该位置不存在资源时崩溃。这对我来说没有意义,必须有一种方法将图片包含在程序中,以便它能正常运行?

向我解释的方式,应用程序总是必须有一张照片来引用,所以这是否意味着每次我给某人应用程序我也必须向他们发送照片,或者有没有办法让照片包裹在应用程序中。

这是我的第一个WPF,所以我不是100%确定一直在发生什么,它可能只是被忽略的东西。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您要做的是将图片添加到项目中,并将其构建操作设置为Resource。然后,您可以将 UriSource 更改为

UriSource="pack://application:,,,/YourProjectAssembly;component/DirectoryName/FolderName/ImageName"

答案 1 :(得分:0)

在Visual Studio中查看图像的属性时,可以选择“构建操作”。这可以是众多选项中的一种,包括将图像复制到构建文件夹,将其作为资源嵌入,以及其他选项。

根据您在项目中包含图片的方式,您需要使用 Pack URI 语法来指定图片的查找位置。这不是直截了当的,但是这里有足够的例子(http://msdn.microsoft.com/en-us/library/aa970069(v=vs.110).aspx),当资源被嵌入等时你应该能够弄明白。它通常涉及指定资源所在的程序集和相对路径,以及散布的非常具体的标点符号。