Silverlight 资源的使用
我们在Silverlight 项目中,新加一个文件,比如一个图片文件,这个文件的属性会有下面2个选项,这两个选项决定了这个图片资源如何存储,如何使用。
先说简单的,资源文件的 Copy to OutPut Directory 属性, 这个属性有如下三个选项:
他们都是在程序编译或者部署时,判断此资源文件是否要同步用的。
Do not copy | 不做数据同步 |
Copy always | 每次都会被同步过去 |
Copy if newer | 当有新版本存在时,才会被同步过去 |
Build Action 属性则复杂多了, 下面是VS2010中, Silverlight 4 项目资源文件的Build Action 属性截图。
注意,上面罗列了一些不适合资源文件的 Build Action 属性,在使用资源文件时,可以忽略这些。
None |
资源既不会被集成到程序集内,也不会打包到xap包中。不过我们可以通过设置CopyToOutputDirectory选项让其自动拷贝到xap包所在目录。 这种情况下, 访问这个图片的相对Uri需要以"/"开始。 适用场景: 在大多数情况下,我们希望把video/audio文件放到xap的外面,因为这种文件一般都比较大,会影响silverlight应用的加载,而且一般的视频音频文件都是压缩格式的,放到xap中也不会起到减少他们文件大小的作用。 |
Compile |
不适合用于资源文件。 类文件要用"Compile"生成操作, 就是指项目里.cs或.vb文件。 |
Content |
资源会被打包在Xap包里面。 这种情况下, 访问这个图片的相对Uri需要以"/"开始。 在这种方式下,如果没有在xap中找到图片文件,那么silverlight会自动从当前xap应用所在的文件夹下来找所需图片文件, 如果还没有找到那么就触发ImageFailed事件, 这种方式比较适合在多个程序集引用相同文件时采用。 |
Embedded Resource |
这种方式会把文件嵌入到程序集中,silverlight无法通过Uri引用在xaml和c#里对这个文件进行使用,微软不建议在silverlight采用这种方式在程序集里嵌入资源。 |
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 资源的使用相关推荐
- 整理Silverlight资源列表(四)——Silverlight案例补充
在过去整理资料中,发现其中有一部分案例偏小 实用 适合于初学者开发.完全可以做参考,其中包含一些难的源码项目案例,今天整理出其中一部分发上来.因为过去资料时间有点长,可能其中有些连接的资源失效或无法访 ...
- [Silverlight资源]处理bmp,gif及ico图像类文件
总所周知,到现在为止Silverlight只支持png和jpg/jpeg格式的图片,而对于web上普遍应用的gif格式却未提供任何处理(bmp格式和ico格式的待遇也是如此),残念- 还好俺最近在网上 ...
- SilverLight学习笔记--关于Silverlight资源文件(如:图片)的放置位置及其引用
Silverlight中有许多资源文件,例如:图片,音频.视频,甚至XML和XAML等非执行数据文件,在Silverlight中根据资源所处位置的不同而有所区别. 资源文件可分布在我们Silve ...
- Silverlight资源概述
基于 Silverlight 的应用程序可以访问以下位置中的多种资源: 宿主服务器和其他网络位置. 嵌入在应用程序包内部或外部的库程序集中的文件. 以松散形式位于应用程序包中的文件. 编译到程序集中的 ...
- ArcGIS API FOR Silverlight资源
http://resources.esri.com/arcgisserver/apis/silverlight/ ArcGIS Silverlight API v1.2帮助页面,包含了大量的示例代码, ...
- Silverlight 2.5D RPG游戏技巧与特效处理:(十六)动态资源
即开即玩是网页游戏相比传统客户端游戏的最大优势.如果说在每台电脑安装上G的客户端是一种资源浪费及时间污染:那么Silverlight作为RIA界的新宠儿,在继承祖辈优秀血统的前提下拥有更加卓越的性能及 ...
- 分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日)
分享Silverlight/WPF/Windows Phone一周学习导读(10月30日-11月6日) 本周Silverlight学习资源更新 Silverlight 定位 niejunhua [学习 ...
- Silverlight之添加全局样式
本文为原创文,难免会有一些小得瑕疵,敬请谅解. 所有示例均是博主测试过的,如有转载请标明出处,谢谢. 在Asp.Net中,我们可以使用Css+Div来控制样式,在Silverlight中我们也可以使用 ...
- Windows Phone 7 定义和使用字典资源(ResourceDictionary)
1.首先需要创建一个资源字典的文件,也就是一个xaml的文件. 文件的语法格式如下 Test.xaml <ResourceDictionary xmlns="http://schema ...
最新文章
- 通用权限管理系统组件 中集成多个子系统的单点登录(网站入口方式)附源码
- 银河麒麟可执行文件双击,闪退问题
- cocos2dx集成友盟社会化分享图片崩溃问题
- Nginx 完整安装篇
- 广电总局:清理违规短视频账号38.39万个
- 数据集转josion
- VS下Qt4.8.4安装
- Jquery获取表格tr对象,并循环获取表格内容
- 天龙八部3新扫地僧辅助 全功能专业刷马贼脚本功能介绍
- Hadoop HA 部署
- Sportisimo EDI项目需求及包装标准
- ios手机如何安装charles抓包工具证书
- 【上海居转户申请流程及材料清单|干货分享】
- 摄影构图学83年绝版_点评2张粉丝投稿,有1处共同错误,3个摄影技巧“变废为宝”...
- 模型数据处理之关键属性提取——SuperMap iDesktop
- 【Unity】Unity实现鼠标控制摄像机围绕物体旋转镜头 滑轮控制远近
- CSP-J2021原题目及答案
- 王慧文清华产品课(三)
- redis 哨兵模式踩坑
- erp5开源制造业erp服装行业解决方案
热门文章
- Qt下libusb-win32的使用(转)
- [黑马程序员C++笔记]P72-P83通讯录管理系统
- 技术人具备”结构化思维“意味着什么?
- 【案例4-8】模拟物流快递系统程序设计
- NMS技术总结(NMS原理、多类别NMS、NMS的缺陷、NMS的改进思路、各种NMS方法)
- PHP做期货,单靠技术分析做期货,可行?
- 如何使用WPS在服务器端WORD文件转PDF
- 社交电商怎么做?4种社交新零售模式玩法剖析
- Java中i++,++i 和i= i+ 1的区别
- 插入低层次网表或第三方IP网表