2011-08-19 199 views
2

我想要一些资源包含在生成的.exe文件中,如许多图像。但是我无法从XAML文件中的RibbonCommands访问这些资源(图像)。C#,WPF,嵌入式资源/嵌入式资源

我已经标记了这些文件,并将它们的属性更改为“Embedded Resources”, ,但在代码和XAML文件中引用它们时遇到问题。

主窗口我也做了以下内容:

其中一期工程!

但RibbonCommands似乎无法找到嵌入式资源。

<r:RibbonCommand x:Key="ScanCommand" 
       LabelTitle="{x:Static const:strings.Scan}" 
       ToolTipDescription="{x:Static const:strings.ScanToolTip}" 
       Executed="ScanDisplayUnit" 
       LargeImageSource="/EasyLink;component/ScanIcon48x48.png" 

我得到的错误信息是:

“/EasyLink;component/ScanIcon48x48.png”不是项目

,或者它生成操作属性未设置的一部分到“资源”

是否无法在功能区中使用“嵌入式资源”?

是否正确理解“嵌入式资源”和“资源”之间的不同之处在于 “嵌入式资源”包含结果.exe文件中的资源,但“资源”不会执行此操作?

+1

在这里看到:[WPF图像资源] [1]我认为这是一切说 [1]:http://stackoverflow.com/questions/347614/wpf-image-resources – Carsten

+0

没有,他们正在描述如何获取图像作为资源(仍然在.exe之外),但它没有描述如何访问“嵌入式图像”,即使是这一个http://stackoverflow.com/questions/5076927/wpf-accessing-an -embedded-resource-in-xaml指的是“资源”而不是“嵌入式资源” –

+0

您是否将Build Action设置为“Resource”有问题?我的理解是这个设置可以更容易地访问XAML中的资源......并且它仍然将资源嵌入到程序集中。 – IanR

回答

2

我刚刚测试过这个,正如我的想法 - “嵌入式资源”和“资源”之间的差异不是,它将资源嵌入到程序集中,而其中一个不是。他们都这样做。

我认为主要区别在于“资源”提供了一种WPF应用程序更易于访问的资源管理方案,因此这是您应该用于图像的选项。