如何从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 。