1、第17章 Silverlight富媒体技术,Silverlight是WPF平台的一个子集,是一种客户端技术,以插件的形式运行在各种浏览器中。同时,Silverlight也是一种创建丰富交互式应用程序的技术。本章将主要介绍Silverlight富媒体技术,包括界面语言XAML、基础控件、多媒体应用、几何绘图等。在本章中,将重点学习以下内容:XAML语言;Silverlight基础控件;多媒体应用;几何绘图;,17.1 了解Silverlight技术,Silverlight是一种基于浏览器的客户端技术,是在.NET框架中实现的。Silverlight可以跨平台、跨浏览器实现,在Web上提供了丰富的
2、交互式应用和媒体体验。,17.1.1 Silverlight技术概述,通过前面章节的学习,已经了解到ASP.NET技术。ASP.NET属于传统的B/S(客户端/服务器)技术,客户端属于瘦客户端,也就是说在客户端只是呈现静态页面和结果,并不会承担更多的逻辑运算。所以,整个应用程序的几乎所有逻辑处理都会放到服务器端进行,即使是与数据无关的页面转换。对于用户来说,使用传统Web技术创建的页面,也会有交互性不好的缺陷,如页面之间切换时频繁刷新问题,处理数据时不得不面对枯燥的表单。面对用户不断增长的新需求,Macromedia公司开始提出RIA(Rich Internet Application)技术的
3、解决方案,该公司凭借流行的Flash平台,构建全新的富客户端架构,后来被Adobe(2005年收购Macromedia)公司加以推广应用。,17.1.2 Silverlight运行原理,Silverlight是一个通过浏览器上的插件运行的客户端技术,用户不需要在自己的计算机上安装任何客户端程序,当然除了浏览器和Silverlight插件。微软Windows Vista以上版本的操作系统,都会默认安装Silverlight插件,除此之外的操作系统,需要手动下载(http:/ Framework for Silverlight,这个类库是全新的,受.Net Framework的支持。在开发Silv
4、erlight应用时,可以调用这个类库中的方法。,17.1.2 Silverlight运行原理,17.1.3 Silverlight结构体系,Silverlight结构体系主要包括两个:界面元素和.Net for Silverlight类库,如图17.4所示。,17.2 XAML语言,XAML是构建Silverlight应用界面的重要语言,有了XAML语言,界面的设计和逻辑代码就可以完全的分离。本节将简要介绍XAML语言以及在Silverlight应用中的作用。,17.2.1 什么是XAML语言,可扩展应用程序标记语言(XAML)是一种声明性语言。具体来说,XAML可以通过使用一种语言结构来显
5、示多个对象之间的分层关系,并使用一种后备类型约定来支持类型扩展,以初始化对象并设置对象的属性。可以使用声明性XAML标记创建可见用户界面(UI)元素。然后,可以使用单独的代码隐藏文件来响应事件和处理您在XAML中声明的对象。XAML语言支持在开发过程中在不同工具和角色之间互换源代码而不会丢失信息,如在Visual Studio和Microsoft Expression Blend之间交换XAML源代码。,17.2.2 XAML与Silverlight关系,在Silverlight体系结构和Silverlight应用程序开发过程中,XAML发挥着多种重要作用。XAML是用于声明Silverlig
6、ht UI及该UI中元素的主要格式。XAML是用于声明样式和模板的格式,这些样式和模板应用于Silverlight控件和UI的逻辑基础。XAML是用于为创建 Silverlight UI 和在不同设计器应用程序之间交换UI设计提供设计器支持的常见格式。最值得注意的是,Silverlight应用程序的XAML可在Expression Blend产品与 Visual Studio之间互换。WPF还在XAML中定义其UI。就与WPF XAML的关系而言,Silverlight XAML使用共享的默认XAML命名空间,且对于其XAML词汇具有近似的WPF子集关系。,17.3 创建Silverlight
7、应用,本章开始将一步步使用Visual Studio 2010开发工具构建Silverlight应用程序,从最简单的使用基础控件开始,到编写绘制复杂的几何图形的代码。,17.3.1 安装Silverlight 4扩展升级,目前官方发布最新的稳定版本是Silverlight 4,其中增加了很多新特性和功能,主要包括如下几点。改善了OOB特性:媒体功能的改进:文本功能增强:控件功能增强:,17.3.1 安装Silverlight 4扩展升级,17.3.1 安装Silverlight 4扩展升级,17.3.2 创建一个Silverlight应用,本节主要介绍如何使用Visual Studio 201
8、0创建一个简单的Sliverlight应用程序。,17.3.2 创建一个Silverlight应用,17.4 使用基础控件,虽然作为WPF的子集,使用了WPF中的一部分控件,但是Silverlight还是拥有另外一套比较独立的控件,而且,官方还在持续开发中。通过站点http:/ 4中新增的控件。,17.4.1 日期(DatePicker)控件,在大部分项目中,日期和时间已经是必不可少的字段,所以日期控件也是必须要了解的。Silverlight在早期的版本就已经提供了日期控件,不论是哪个版本,日期控件的用法基本相同,本节将通过实例介绍Silverlight 3中日期控件的使用。,17.4.1 日
9、期(DatePicker)控件,17.4.2 自动完成(AutoCompleteBox)控件,自动完成控件是新增加的控件,可以根据用户输入的关键字,查找出匹配的数据,并以下拉列表的形式列出来,以帮助用户选择。,17.4.3 图像(Image)控件,图像控件的使用和在WPF中一样,不过本节重点介绍的是如何动态的创建一个图片并使用相关属性缩放图片。通过本节的学习,读者可以了解到如何编辑图片。,17.4.4 网页浏览器(WebBrowser)控件,网页浏览器控件是Silverlight 4中新增加的,用来承载Silverlight插件中的静态HTML页面。该控件只适用于在浏览器外运行的Silverl
10、ight程序,所以需要修改项目的属性,才能在浏览器外运行。,17.4.4 网页浏览器(WebBrowser)控件,17.4.5 富文本编辑(RichTextBox)控件,RichTextBox控件同样也是Silverlight 4新版本中才具有的控件,该控件支持格式化文本、增加超链接、内联图像和编辑其他多种格式的文本编辑控件。,17.5 Silverlight多媒体应用,多媒体应用是区分传统Web技术的标准之一,Silverlight可以支持多种媒体格式的播放,同时在新版本Silverlight 4中还增加了对本地资源设备的访问,如麦克风和摄像头等。,17.5.1 播放多媒体,Silverli
11、ght的多媒体播放要依靠MediaElement对象,通过该对象可以播放Windows Media视频 (WMV)、Windows Media 音频(WMA)和MP3文件等。通过MediaElement对象还可以控制播放的影片。,17.5.2 捕获本地设备资源,Silverlight 4中新增加了一些对本地资源设备的访问,常用的就是网络摄像机和麦克风。,17.6 Silverlight中的几何绘图,在界面设计中,使用几何图形来代替枯燥的文字和表格,可以把设计意图更形象的表达出来,从而提高用户的交互性。Silverlight中已经提供两种绘制几何图形的方法,一种是使用Shape对象绘图,另外一种
12、则是借助Geometry对象来定义形状。本节将介绍在Silverlight应用中绘制图形的方法以及图形变换,在最后还简要介绍了如何创建三维透视。,17.6.1 使用Shape对象绘制图形,在Silverlight 中,Shape是一种允许您在屏幕中绘制形状的UIElement类型。由于它们是用户界面 (UI) 元素,因此 Shape 对象可以在各种容器对象(如Grid和Canvas)中使用。,17.6.2 使用Geometry对象定义形状,Geometry对象(如EllipseGeometry、PathGeometry和GeometryGroup)可以用于描绘二维 (2-D) 形状的几何图形。
13、这些几何图形的描绘具有许多用途,例如,定义一个要绘制到屏幕的形状或者定义剪辑区域。Geometry对象可以很简单(如矩形和圆),也可以是基于两个或更多个Geometry对象创建的复合形状。使用PathGeometry对象可以创建更复杂的几何图形,这些对象可用于描绘弧线和曲线。,17.6.3 图形变换,在Silverlight中使用二维 (2-D) Transform类来旋转、按比例缩放、扭曲和移动(平移)对象。,17.6.4 创建三维透视转换,在Silverlight对象中,除了X和Y坐标外,几乎都还有Z坐标。这说明在Silverlight应用中,对三维视图的创建有更好的支持。,17.7 小结,从介绍Silverlight技术,到基础控件的使用,从多媒体的创建,再到绘制几何图形,本章系统的介绍了Silverlight技术和应用。有关Silverlight技术的内容还有很多,由于篇幅所限,不能一一深入探讨,但是通过本章的学习,读者可以对Silverlight有一个清晰的认识,相信对以后的学习有更大的帮助。基础控件在创建企业级应用中有很大用途,所以控件的灵活使用是本章的重点。本章的难点是几何绘图以及如何使用几何图形来构建页面,如何设计出更加人性化的图形界面,提高使用者的操作体验才是关键。下一章将要介绍有关反射的知识。,