如何从XAML引用嵌入式资源?

我有几个图像,我想嵌入到exe中。

当我将构建操作设置为嵌入式资源时,我通过代码解决了资源不可用的错误,并要求我将构建操作设置为资源

我尝试了几种不同的方法:

YearBook;component/Resources/Images/darkaurora.png Images/darkaurora.png pack://application:,,,/Resources/Images/darkaurora.png 

此代码位于Resource文件中。 但没有一个工作,他们都抛出这个错误:

 Cannot convert the string 'pack://application:,,,/Resources/Images/darkaurora.png' into a 'System.Windows.Media.ImageSource' object. Cannot locate resource 'resources/images/darkaurora.png'. Error at object 'Image_Background' in markup file 'YearBook;component/Resources/ImageResources.xaml' Line 4 Position 6. 

在代码中的不同位置我得到:

 the file 'YearBook;component/Resources/Images/shadowdrop.png' is not a part of the project or its 'Build Action' property is not set to 'Resource' 

那么,我做错了什么?

BuildAction设置为Resource时,它将作为程序集中的嵌入资源。 或者您可以将BuildAction设置为Content,然后它将捆绑到生成的.xap文件中。 您可以使用这些BuildActions中的任何一个。 通过将BuildAction设置为Content,您可以访问Image,如: "/Resources/Images/darkaurora.png" (必须以斜杠开头)。 当您使用BuildAction资源时,您可以访问图像为"/YearBook;component/Resources/Images/darkaurora.png" ;component/ Resources / "/YearBook;component/Resources/Images/darkaurora.png" / "/YearBook;component/Resources/Images/darkaurora.png" (程序集名称;组件/相对"/YearBook;component/Resources/Images/darkaurora.png" )。 希望这会有所帮助。

将构建操作设置为Resource,而不是Embedded Resource

ImageSource无法实例化。

 public abstract class ImageSource : Animatable, IFormattable 

那里有一点点abstract ,会让你的日子变得abstract 。 你的xaml实际上是在尝试实例化ImageSource的一个实例,然后使用可以定位的转换器将元素(在这种情况下,你的Uri,在这种情况下)分配给一个用ContentPropertyAttribute(??)标记的属性。一个对象(再次,??)。

我想你想要一个BitmapSource 。