C# 包括资源而不是其位置

C# 包括资源而不是其位置,c#,wpf,image,C#,Wpf,Image,你好,, 我对C#处理资源的方式有一个问题,我知道上面的代码是对图片的引用,但我假设当程序编译时,它会包含在其他计算机上运行时的图片。相反,它只是在资源不在该位置时崩溃。这对我来说毫无意义,必须有一种方法将图片包含在程序中,这样它才能正常运行 按照向我解释的方式,应用程序总是要有一张照片作为参考,那么这是否意味着每次我给某人应用程序时,我也必须向他们发送照片,或者是否有办法将照片包装到应用程序中 这是我的第一次WPF,所以我不是100%确定一直在发生什么,它可能只是被忽略了 感谢您的帮助您要做的

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

按照向我解释的方式,应用程序总是要有一张照片作为参考,那么这是否意味着每次我给某人应用程序时,我也必须向他们发送照片,或者是否有办法将照片包装到应用程序中

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


感谢您的帮助

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

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

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


根据您在项目中包含图像的方式,您将需要使用Pack URI语法来指定在何处可以找到图像。这并不简单,但是这里有足够的例子()说明何时嵌入资源等等,您应该能够理解。它通常涉及到指定资源所在的程序集和相对路径,以及非常特定的标点符号组合。

我可能还应该补充一点,我在.net 3.5上构建此应用程序,因此它与vista兼容
UriSource="pack://application:,,,/YourProjectAssembly;component/DirectoryName/FolderName/ImageName"