在silverlight xap文件中嵌入资源(png、jpg、mp3、wmv等)并引用xaml

在silverlight xap文件中嵌入资源(png、jpg、mp3、wmv等)并引用xaml,silverlight,xaml,embed,embedded-resource,Silverlight,Xaml,Embed,Embedded Resource,基本上,我希望能够在我的xaml中执行类似的操作: <Image Source="Resources/logout.png" /> 并让它在我的xap文件中找到Resources/logout.png文件,而无需返回web服务器。我还希望能够动态重建我的xap文件,因此将其作为资源放置在dll中是不可接受的 有什么想法吗?将图像添加到项目中,但将构建操作设置为“内容”,并将“复制到输出目录”设置为“不复制” 对于根目录中的文件,我使用了这种格式 <Image Source

基本上,我希望能够在我的xaml中执行类似的操作:

<Image Source="Resources/logout.png" />

并让它在我的xap文件中找到Resources/logout.png文件,而无需返回web服务器。我还希望能够动态重建我的xap文件,因此将其作为资源放置在dll中是不可接受的


有什么想法吗?

将图像添加到项目中,但将构建操作设置为“内容”,并将“复制到输出目录”设置为“不复制”

对于根目录中的文件,我使用了这种格式

<Image Source="/logout.png" />


我建议不要这样做,因为这会使您的初始XAP下载花费更长的时间。

要播放嵌入在程序集DLL中的声音(这与嵌入在XAP中不同-事实上这是两级嵌套,因为DLL位于XAP中并加载到内存中),请参见如果它在主页上,我不同意。否则,你说得对。因此,如果要嵌入的内容量很小,那么这种方法是可以的。我同意你的观点,如果内容很丰富的话。这里的最佳实践是对大小和测试做出判断。我相信在很多情况下,嵌入关键资源(想象工具栏图标、UI组件和基本应用程序品牌)会更好。它减少了一个HTTP请求,最终会被稍微压缩(在.xap中),等等。这使得浏览器或CDN无法缓存不经常更改的单个元素。应用程序的使用也会影响它。如果使用模式是单次使用,那么您是正确的,将其放入XAP是有意义的。如果使用模式是人们反复使用应用程序,并且XAP可能经常更改,那么结合使用浏览器/CDN和ISO存储缓存将获得性能更好、加载更快的应用程序。声音和MediaElement更复杂