我们在Silverlight 项目中,新加一个文件,比如一个图片文件,这个文件的属性会有下面2个选项,这两个选项决定了这个图片资源如何存储,如何使用。

先说简单的,资源文件的 Copy to OutPut Directory 属性, 这个属性有如下三个选项:

image

他们都是在程序编译或者部署时,判断此资源文件是否要同步用的。

Do not copy 不做数据同步
Copy always 每次都会被同步过去
Copy if newer 当有新版本存在时,才会被同步过去

Build Action 属性则复杂多了, 下面是VS2010中, Silverlight 4 项目资源文件的Build Action 属性截图。

image

注意,上面罗列了一些不适合资源文件的 Build Action 属性,在使用资源文件时,可以忽略这些。

None 资源既不会被集成到程序集内,也不会打包到xap包中。不过我们可以通过设置CopyToOutputDirectory选项让其自动拷贝到xap包所在目录。
这种情况下, 访问这个图片的相对Uri需要以"/"开始。

适用场景:

在大多数情况下,我们希望把video/audio文件放到xap的外面,因为这种文件一般都比较大,会影响silverlight应用的加载,而且一般的视频音频文件都是压缩格式的,放到xap中也不会起到减少他们文件大小的作用。
类似图片视频这种资源文件生成操作为None时和他们没有被添加到项目里是一样的,都可以用绝对Uri进行引用。

Compile 不适合用于资源文件。
类文件要用"Compile"生成操作, 就是指项目里.cs或.vb文件。
Content 资源会被打包在Xap包里面。
这种情况下, 访问这个图片的相对Uri需要以"/"开始。
在这种方式下,如果没有在xap中找到图片文件,那么silverlight会自动从当前xap应用所在的文件夹下来找所需图片文件,
如果还没有找到那么就触发ImageFailed事件,
这种方式比较适合在多个程序集引用相同文件时采用。
Embedded Resource

这种方式会把文件嵌入到程序集中,silverlight无法通过Uri引用在xaml和c#里对这个文件进行使用,微软不建议在silverlight采用这种方式在程序集里嵌入资源。
如果有这种需求可以用
Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(string path)相关的方法得到文件的stream引用。

ApplicationDefinition

silverlight程序的入口xaml文件(默认就是App.xaml)应该设置为这个"应用定义"。其他文件都不适合用这个。

Page 不适合用于资源文件。
所有的用户控件, 页面和子窗体(usercontrol/page/childwindow)的xaml文件应该采用的生成操作。
如果改为别的方式那么会导致后台对应的代码文件无法链接到这个xaml文件。 采用"Page" build action时xaml里的错误会导致工程无法正确生成。
CodeAnalysisDictionary 代码分析使用,Silverlight中可以忽略
Resource 资源会被打包在程序集内部。
选择这种生成方式后,该资源文件会被嵌入到该应用的程序集中,就是说打开生成的xap是看不到这个文件的。

可以用相对于当前的XAML文件的相对Uri访问,

或是,

在子文件夹里的可以用
访问到。

最保险的方式是采用特有的程序集资源URI访问,格式为

这种方式还可以引用到xap中的其他程序集中的图片。

这种生成方式的系统资源可以直接用Application.GetResourceStream(uri).Stream在代码里来得到。

SplashScreen

"SplashScreen"是这个选项是WPF的启动画面使用的。  silverlight启动加载画面是用的其他方式实现的, 所以在silverlight里不要用这个方式。

EntityDeploy 这个是EntityFramework采用的生成方式, 在silverlight里是没用。

参考资料:

分析silverlight里的URI引用资源文件的各种情况
http://bbs.blueidea.com/viewthread.php?tid=2941697

Silverlight图片相对路径的设置
http://www.cnblogs.com/yangfan/archive/2009/12/14/1623647.html

关于Silverlight资源文件(如:图片)的放置位置及其引用(相对路径)
http://www.cnblogs.com/star250/archive/2009/10/15/1583665.html

Silverlight资源文件
http://msdn.microsoft.com/zh-cn/library/cc296240(VS.95).aspx

图片等资源的引用路径问题
http://www.cnblogs.com/kevinyang/archive/2008/11/16/1334712.html

Silverlight 资源的使用相关推荐

  1. 整理Silverlight资源列表(四)——Silverlight案例补充

    在过去整理资料中,发现其中有一部分案例偏小 实用 适合于初学者开发.完全可以做参考,其中包含一些难的源码项目案例,今天整理出其中一部分发上来.因为过去资料时间有点长,可能其中有些连接的资源失效或无法访 ...

  2. [Silverlight资源]处理bmp,gif及ico图像类文件

    总所周知,到现在为止Silverlight只支持png和jpg/jpeg格式的图片,而对于web上普遍应用的gif格式却未提供任何处理(bmp格式和ico格式的待遇也是如此),残念- 还好俺最近在网上 ...

  3. SilverLight学习笔记--关于Silverlight资源文件(如:图片)的放置位置及其引用

    Silverlight中有许多资源文件,例如:图片,音频.视频,甚至XML和XAML等非执行数据文件,在Silverlight中根据资源所处位置的不同而有所区别.    资源文件可分布在我们Silve ...

  4. Silverlight资源概述

    基于 Silverlight 的应用程序可以访问以下位置中的多种资源: 宿主服务器和其他网络位置. 嵌入在应用程序包内部或外部的库程序集中的文件. 以松散形式位于应用程序包中的文件. 编译到程序集中的 ...

  5. ArcGIS API FOR Silverlight资源

    http://resources.esri.com/arcgisserver/apis/silverlight/ ArcGIS Silverlight API v1.2帮助页面,包含了大量的示例代码, ...

  6. Silverlight 2.5D RPG游戏技巧与特效处理:(十六)动态资源

    即开即玩是网页游戏相比传统客户端游戏的最大优势.如果说在每台电脑安装上G的客户端是一种资源浪费及时间污染:那么Silverlight作为RIA界的新宠儿,在继承祖辈优秀血统的前提下拥有更加卓越的性能及 ...

  7. 分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日)

    分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日) 本周Silverlight学习资源更新 Silverlight 定位 niejunhua [学习 ...

  8. Silverlight之添加全局样式

    本文为原创文,难免会有一些小得瑕疵,敬请谅解. 所有示例均是博主测试过的,如有转载请标明出处,谢谢. 在Asp.Net中,我们可以使用Css+Div来控制样式,在Silverlight中我们也可以使用 ...

  9. Windows Phone 7 定义和使用字典资源(ResourceDictionary)

    1.首先需要创建一个资源字典的文件,也就是一个xaml的文件. 文件的语法格式如下 Test.xaml <ResourceDictionary xmlns="http://schema ...

最新文章

  1. 通用权限管理系统组件 中集成多个子系统的单点登录(网站入口方式)附源码
  2. 银河麒麟可执行文件双击,闪退问题
  3. cocos2dx集成友盟社会化分享图片崩溃问题
  4. Nginx 完整安装篇
  5. 广电总局:清理违规短视频账号38.39万个
  6. 数据集转josion
  7. VS下Qt4.8.4安装
  8. Jquery获取表格tr对象,并循环获取表格内容
  9. 天龙八部3新扫地僧辅助 全功能专业刷马贼脚本功能介绍
  10. Hadoop HA 部署
  11. Sportisimo EDI项目需求及包装标准
  12. ios手机如何安装charles抓包工具证书
  13. 【上海居转户申请流程及材料清单|干货分享】
  14. 摄影构图学83年绝版_点评2张粉丝投稿,有1处共同错误,3个摄影技巧“变废为宝”...
  15. 模型数据处理之关键属性提取——SuperMap iDesktop
  16. 【Unity】Unity实现鼠标控制摄像机围绕物体旋转镜头 滑轮控制远近
  17. CSP-J2021原题目及答案
  18. 王慧文清华产品课(三)
  19. redis 哨兵模式踩坑
  20. erp5开源制造业erp服装行业解决方案

热门文章

  1. Qt下libusb-win32的使用(转)
  2. [黑马程序员C++笔记]P72-P83通讯录管理系统
  3. 技术人具备”结构化思维“意味着什么?
  4. 【案例4-8】模拟物流快递系统程序设计
  5. NMS技术总结(NMS原理、多类别NMS、NMS的缺陷、NMS的改进思路、各种NMS方法)
  6. PHP做期货,单靠技术分析做期货,可行?
  7. 如何使用WPS在服务器端WORD文件转PDF
  8. 社交电商怎么做?4种社交新零售模式玩法剖析
  9. Java中i++,++i 和i= i+ 1的区别
  10. 插入低层次网表或第三方IP网表