包括资源而不是其位置

本文关键字:位置 资源 包括 | 更新日期: 2023-09-27 18:06:36

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

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

我得到的解释是,应用总是需要有一张照片作为参考,这是否意味着每次我给别人应用时我都要把照片发给他们,或者有没有办法把照片包装到应用中。

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

thanks for the help

包括资源而不是其位置

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

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

当您在Visual Studio中查看图像的属性时,您可以选择Build Action。这可以是许多选项之一,包括将映像复制到构建文件夹,将其作为资源嵌入,以及其他。

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