我们在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中也不会起到减少他们文件大小的作用。 类似图片视频这种资源文件生成操作为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中,资源字典(ResourceDictionary)是一...总的来说,Silverlight资源字典是UI设计和开发的重要组成部分,它促进了代码的复用,简化了样式和模板的管理,同时也为应用程序的全球化和动态更新提供了便利。
在Silverlight中,我们可以使用ResourceDictionary来存储不同语言的文本资源。创建一个或多个.resx文件,如`Resources.en-US.resx`(英语)和`Resources.fr-FR.resx`(法语),每个文件包含一组键值对,键是标识符,...
3. **资源查看**:显示应用程序使用的资源,如样式、模板、图像等,方便资源管理和优化。 4. **图形和动画调试**:查看和控制图形渲染和动画,确保视觉效果的正确性。 5. **事件追踪**:记录并显示UI事件的触发...
综上所述,"silverlight资源集"中的内容涵盖了Silverlight开发的各个方面,包括开发环境的搭建、XAML语言的学习、数据绑定、UI设计、多媒体处理、通信机制、部署策略以及安全性等。对于想要深入了解和学习...
10. **编程模型**:Silverlight使用C#或VB.NET作为主要的编程语言,基于.NET Framework的子集,理解C#的基础语法和面向对象的概念是必要的。 11. **Silverlight应用生命周期**:了解Silverlight应用从加载到卸载的...
总之,Silverlight视频聊天Demo是一个综合性的学习资源,它涵盖了媒体处理、网络通信、用户交互等多个方面。对于初学者来说,通过研究这个Demo,不仅可以了解Silverlight的基础用法,还能深入理解实时音视频聊天应用...
以下各节说明如何使用 Silverlight 生成应用程序: Silverlight 的 .NET Framework 类库 Silverlight 概述 Silverlight 入门 应用程序和编程模型 布局、文本和输入 控件 图形、动画和媒体 XAML 将 ...
在本文中,我们将深入探讨如何使用Silverlight技术来实现网站主题的动态变色效果,这是一种在Web应用中为用户提供个性化体验的酷炫功能。Silverlight是Microsoft推出的一种强大的富互联网应用程序(RIA)开发平台,...
Selenium 是一个强大的开源自动化测试框架,用于网页应用的测试。...通过这些资源,开发者和测试人员可以学习如何集成和利用Selenium Silverlight测试接口,以便更有效地进行Silverlight应用的自动化测试。
如果在使用windows update更新时 发现某个更新总是安装失败 并且错误代码是643 那么通常都是由于该更新所对应的组件损坏 导致该更新无法安装成功 要解决这个问题 通常都需要将该组件卸载之后重新安装来进行修复 如果...
对于初学者来说,掌握Silverlight的基础知识和使用方法,可以为Web开发打开一扇新的大门。下面将详细介绍Silverlight的相关知识点。 **一、Silverlight简介** Silverlight是一种RIA(Rich Internet Application)...
在Silverlight 3.0中,我们可以使用`Binding`类来实现这一功能。例如,我们可以在XAML中声明一个控件,并将其`DataContext`属性设置为我们想要绑定的数据对象。接着,我们可以使用`DataTemplate`来定义这个数据对象...
在探讨如何在Silverlight中使用OpenFileDialog浏览本地图片这一主题时,我们首先需要理解Silverlight的基本概念以及OpenFileDialog的功能和作用。Silverlight是Microsoft推出的一款跨浏览器、跨平台的插件,它允许...
在"SilverLightTaTung"这个压缩包中,可能包含了示例代码、项目文件、教程文档等资源,这些都是为了帮助开发者更好地理解和实践SilverLight的用法。通过深入研究这些文件,我们可以学习到如何从零开始构建一个完整的...
解决这个问题,可以先搜索我的资源,安装第一个程序:Silverlight5--“需要安装最新的silverlight Developer运行时”解决办法”,然后安装第二个程序(本资源的程序),即可解决问题,亲测。 希望大家多多给这个资源...
然而,对于那些仍使用Silverlight的遗留系统,Silverlight Toolkit仍然是一项宝贵的资源,帮助维持和更新这些系统。 总之,Silverlight Toolkit是Silverlight开发者的重要资源,提供了一系列强大的控件和工具,极大...