Silverlight学习笔记1
Silverlight学习帮助
一.Silverlight学习 (2)1.1 Silverlight概述 (2)1.2 Silverlight 结构 (3)1.2.1 Silverlight平台 (3)1.2.2 Silverlight 结构 (3)1.2.3 核心表示层组件 (4)1.2.4 NET Framework for Silverlight (4)1.2.5 附加Silverlight 编程功能 (5)1.3 Silverlight 3.0 环境的搭建 (6)二.开始第一个Silverlight工程 (6)2.1 Silverlight 应用程序项目文件 (8)2.1.1 Silverlight 应用程序项目包含以下配置、程序集引用和代码文件: (8)2.1.2 Silverlight 应用程序项目将包含对以下程序集的引用: (8)2.2 工程示例 (9)2.2.1 Silverlight工程的独立运行 (11)2.2.2 Silverlight中XAML页面的导航 (11)三.Silverlight的特点分析 (12)3.1 Silverlight 3概述 (13)3.2 Silverlight 3 特点之增强媒体特性 (13)3.3 Silverlight 3特性之强化丰富的体验 (14)3.4 Silverlight 3特性之提高富互联网应用的效率 (14)3.5 Silverlight 3增强特性之其它 (15)3.6 Expression Blend 3中的新特性 (15)四.Deep Zoom Composer (16)4.1 Deep Zoom技术原理简介 (16)4.2 开始第一个Deep Zoom Composer应用 (17)4.2.1 建立Deep Zoom图片 (18)4.2.2 将Deep Zoom图片添加到Silverlight工程 (20)4.3 Deep Zoom Composer正式版的特点分析 (21)4.3.1 Deep Zoom Composer正式版的特点之容易的交互式Deep Zoom体验 (22)4.3.2 Deep Zoom Composer正式版的特点之追踪分析 (22)4.3.3 Deep Zoom Composer正式版的特点之增强的DeepZoomPix播放器 (23)4.3.4 Deep Zoom Composer正式版的特点之让你的导出走得更远 (24)4.3.5 Deep Zoom Composer正式版的特点之更新的UI (24)4.3.6 Deep Zoom Composer正式版的特点之支持Smooth Streaming (24)五.JSON-RPC (25)5.1 JSON数据格式 (25)5.2 JSON数据格式转换 (25)5.2.1 JSON在java中的数据转换 (25)5.2.2 JSON数据格式在Silverlight中的转换 (26)5.3 JSON-RPC (27)5.3.1 JSON传输协议 (27)5.3.2 Silverlight对基于Http的服务发出请求 (27)一.Silverlight学习1.1Silverlight概述Microsoft Silverlight 是一种跨浏览器、跨平台的.NET Framework 实现,用于为Web 生成和提供下一代媒体体验和丰富的交互式应用程序(RIA)。
SilverLight学习笔记--Silverligh之BackgroundWorker类的应用
在Silverlight应用中,我们可能会遇到一些操作(如:下载某个资源或某些数据库事务或完成某些特定动作),这些操作耗时较长,容易造成“用户界面停止响应”的现象。
如果您需要能进行响应的用户界面,而且必须执行耗时操作,则可以使用BackgroundWorker 类方便地解决问题。
BackgroundWorker 类是.net 2.0里新增的一个类。
使用BackgroundWorker 类,我们可以在Silverlight 用户界面中指示操作进度、完成和取消情况。
例如,可以查看后台操作是已完成还是已取消并为用户显示消息。
一、BackgroundWorker类的基本了解涉及的命名空间using ponentModel;它的几个属性:CancellationPending——指示应用程序是否已请求取消后台操作。
IsBusy——指示 BackgroundWorker 是否正在运行异步操作WorkerReportsProgress——该值指示 BackgroundWorker 能否报告进度更新WorkerSupportsCancellation——该值指示 BackgroundWorker 是否支持异步取消它的主要事件:DoWork——调用 RunWorkerAsync 时发生。
注意确保在 DoWork 事件处理程序中不操作任何用户界面对象。
而应该通过 ProgressChanged 和 RunWorkerCompleted 事件与用户界面进行通信。
ProgressChanged——调用 ReportProgress 时发生。
RunWorkerCompleted——当后台操作已完成、被取消或引发异常时发生。
它的有关方法:CancelAsync——请求取消挂起的后台操作ReportProgress——引发 ProgressChanged 事件RunWorkerAsync——开始执行后台操作二、示例下面,我们就使用这个类来完成一个特定操作:用于执行从1累加到6.在累加过程中,SUM值会不断更新,当累加到6后,BackgroundWorker会在成功执行结束后调用一段程序来输出最终的运行信息。
SilverLight学习笔记--Silverligh之Json的通讯传递
JSON是一种轻量级的数据传输类型,它可以通过序列化把一个简单对象转换为一个简单的字符串,在网络中进行传输,然后在客户端进行反序列化,得到原始对象.功能上和XML差不多,只是它的体积小,在客户端解析方便,所以被广泛使用.我们可以使用Silverlight提供的三个类来完成JSON数据的传递和接收。
它们是:1、DataContractJsonSerializer (位于 System.Runtime.Serialization. Json)2、JsonObject (位于System.Json,将JSON数据流转换成为可读写的对象)3、JsonArray (位于System.Json, 对JSON数据流转换成为JsonObject数组形式,可支持LINQ查询)注:如果要引用System.Runtime.Serialization.Json名空间里的Json,则必须也引用System.ServiceModel,否则Json会无法使用。
在本例中,我们将使用它来进行示例。
下面我们一起来学习在Silverlight中如何从服务器端向客户端传递Json数据。
新建一个Silverlight应用程序。
命名为:SLJson(一)准备工作在这里,我们完成三种情况的Json数据传递。
1、一个Person类(其属性均为简单类型:String类型)2、Customers类,它是Person类的一个List。
3、一个PersonT类(它包含另一个类 Address)我们要传递这三种情况的类对象实例到客户端并显示出来。
所以,在此,我们首先要在服务器端和客户端分别建立上面的三个类。
Person类服务器端代码定义如下:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Runtime.Serialization;//要引用System.Runtime.Serializati on.Dll才能使用[DataContract]与[DataMember]属性namespace SLJson.Web{[DataContract]public class Person{[DataMember]public string Name { get; set; }[DataMember]public int Age { get; set; }[DataMember]public string Address { get; set; }}}客户端代码定义如下:using System;using ;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;namespace SLJson{public class Person{public string Name { get; set; }public int Age { get; set; }public string Address { get; set; }}}Customers类服务器端代码定义如下:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Runtime.Serialization; //要引用System.Runtime.Serializat ion.Dll才能使用[DataContract]与[DataMember]属性namespace SLJson.Web{[DataContract]public class Customers{[DataMember]public List<Person> Persons { get; set; }}}客户端代码定义如下:using System;using ;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;using System.Collections.Generic; //要引入此空间以使用Listnamespace SLJson{public class Customers{public List<Person> Persons { get; set; }}}PersonT类服务器端代码定义如下:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Runtime.Serialization;//要引用System.Runtime.Serializati on.Dll才能使用[DataContract]与[DataMember]属性namespace SLJson.Web{[DataContract]public class PersonT{[DataMember]public string Name { get; set; }[DataMember]public int Age { get; set; }[DataMember]public Address Address { get; set; }}}客户端代码定义如下:using System;using ;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;namespace SLJson{public class PersonT{public string Name { get; set; }public int Age { get; set; }public Address Address { get; set; }}}PersonT类内含的Address类服务器端代码定义如下:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Runtime.Serialization;//要引用System.Runtime.Serializati on.Dll才能使用[DataContract]与[DataMember]属性namespace SLJson.Web{[DataContract]public class Address{[DataMember]public string country { get; set; }[DataMember]public string city { get; set; }}}客户端代码定义如下:using System;using ;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;namespace SLJson{public class Address{public string country { get; set; }public string city { get; set; }}}至此,我们的应用程序如下图:(二) 实现Json数据的传递。
C-开发WPFSilverlight动画及游戏系列教程1
//创建X轴方向动画
DoubleA nimatio n doubleA ni mati on = new DoubleA nimatio n(
Can vas.GetLeft(rect),
p.X,
new Durati on( TimeSpa n.F romMillisec on ds(500))
开发的FLASH。
转入正题,网上已经有很多关于如何创建WPF/Silverlight动画的教程,但是均为使用Blend工具 制作,或直接写在xaml代码内的动画,这样往往造成很多朋友误以为其实WPF/Silverlight不就是MS
的Flash?诚然,如果您真的像那些教程里说的去开发WPF/Silverlight程序,我个人觉得一点意义都没
</ Window>
这段代码我创建了一个名叫Carrier的Canvas(画布)容器布局控件,并设置它的尺寸为800*600,
背景银色,最后注册一个鼠标在它上面点击的事件。那么为什么要选择Canvas作为容器呢?因为Canvas
可以实现它内部的控件任意的绝对定位,可以很方便的处理物体的移动。
界面容器元素布局好了,那么接下来就动态创建物体对象了:
一条绝对可行的思路,至于如何处理这些复杂的算法,那是仁者见仁,智者见智了,或许您写的算法比
我的更好呢。
多余的话不多说了,最后来句发自肺腑的话吧:本系列教程的书写编辑花费作者很多心血,没有
功劳也有苦劳哇,所以请需要转载的朋友们用突出的字体或颜色标明在您的文章开头,您的大力支持是
鼓励我不断写下去的动力。
//创建Y轴方向动画
doubleA ni mati on = new DoubleA ni mati on(
(完整word版)SilverLight学习笔记--Silverligh之动态加载程序集(.DLL)
自定义 TextEventArgs 事件参数类定义一个接口IEditUI}1.2、定义用户编辑器类用与定义接口同样的方法,我们添加一个Silverlight类库项目,命名为:Implementation。
新建后,解决方案如下图:在编写Implementation类的代码前,我们需要添加引用前面所定义的Interfaces接口,引用界面如图:Implementation项目下的Class1.cs代码如下:using System;using ;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Ink;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;using Interfaces; //需要引用Interfaces接口namespace Implementation{//在此我们定义Editor类,它必须要实现我们前面定义的IEditUI接口public class MyEditor: IEditUI{private TextBox textBox;private TextBlock textBlock;定义并实现IEditUI接口的TextChanged事件MyEditor的构造函数实现IEditUI接口的GetControls方法MyEditor界面中按钮Click事件,在此事件中激发IEditUI接口定义的TextChanged事件实现IEditUI接口的SetText方法}}1.3、进一步准备工作现在我们需要生成解决方案,生成后,我们需要找到Implementation项目的Bin目录下的Debug子目录,在此子目录下找到Implementation.dll,把它拷贝到SLDynamicLoadingAssembly.Web项目的ClientBin下备用(引用)。
Silverlight API学习笔记
Silverlight API学习笔记(一)上一篇/ 下一篇 2010-06-08 13:03:57 / 个人分类:ArcGIS Server查看( 439 ) / 评论( 4 ) / 评分( 0 / 0 )ArcGIS Silverlight API安装资源下载ArcGIS Silverlight API的帮助是在线的,访问的URL为:/en/webapi/silverlight/help/index.html关于如何搭建应用开发环境,可以参照左边的目录树中的Installation,其中包含各种开发资源的下载链接。
在系列教程的第一讲中,我先将本Help中提到的相关资源全部下载整理了一下,放在QQ空间的中转站中。
QQ帐号是:arcgiser@密码是:giser1234567,大家登录QQ邮箱后,直接在文件中转站中可以看到下载链接。
因为这个资源是开放给GISer方便学习用的,请不要随便更改QQ密码。
文件默认的存放时间为7天,如果有人看到即将过期,请帮忙续期一下。
(VS2010实在太大了,就不上传了,大家自己找下载地址吧)这个资源主要包含以下几个,简要介绍如下:(1)Expression Blend 4RC:Expression Blend,是一款用于设计桌面和Web应用用户界面的可视化工具,用户可以通过拖拉控件方式创建用户交互界面,即Expression Blend是一款Silverlight API编程的IDE。
Expression Blend 4RC是4.0 Release Candidate版本。
(2)Silverlight4_Tools如果您是在VS2010中进行ArcGIS Silverlight API开发的话,必须在安装完VS2010之后再安装Silverlight4_tools (/downloads/details.aspx?familyid=BF5AB940-C011-4BD1-AD98-DA 671E491009&displaylang=en)。
Sliverlight教程
Silverlight教程第一部分:使用Silverlight 2 和VS 2008创建“Hello World”程序这是8个系列教程的第一部分,这系列示范如何使用Silverlight 2的Beta1版本建造一个简单的Digg客户端应用。
这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。
使用 VS 2008 创建一个新的Silverlight 应用我们来开始我们的Digg应用的开发,先选择Visual Studio 2008 中的文件->新项目菜单项,使用新项目对话框创建一个“Silverlight Application” (注:你需要在Beta1发布后,下载和安装 VS 2008的Silverlight工具才能得到这个支持):我们将该项目命名为“DiggSample”。
在点击OK按钮后, Visual Studio 会显示另外一个对话框,允许我们选择我们是否只要创建一个Silverlight应用项目,或者还要加一个服务器端的 Web项目到包含Silverlight应用的解决方案里去:在这个例程里,我们将选择还要添加一个 Web Application 项目到解决方案里去,并将它命名为“DiggSample_WebServer”。
在点击OK之后,Visual Studio 会为我们创建一个解决方案,里面包含一个Silverlight 客户端应用和一个 web 服务器端应用:如果我们做一次编译的话, Visual Studio 会自动把编译好的 Silverlight 应用拷贝到我们的web服务器项目中去,不需要手工的步骤或配置。
VS为我们创建的默认的web服务器项目包含一个网页和一个静态的 HTML网页,我们可以用来运行和测试其中的Silverlight应用。
注: Silverlight应用可用于任何web服务器(包括Linux上的Apache),宿主于静态HTML文件或者任何服务器端生成的网页(包括 PHP, Java, Python, Ruby等等)中。
控件入门Silverlight
控件入门Silverlight控件的设计是一致的。
当了解一种控件类型的基础知识后,使用其他控件就很容易了。
例如,向应用程序添加控件、更改控件外观以及处理控件事件对于所有Silverlight 控件都是类似的。
如果您使用的是Visual Studio 2010,则可以通过用于Visual Studio 的Silverlight 设计器轻松完成所有这些任务。
还可以使用XAML 或代码完成这些任务。
本主题介绍Silverlight 控件之间共享的一些控件任务。
说明:本主题包括下列各节。
∙向应用程序添加控件∙使用属性更改单个控件的外观∙使用样式更改多个控件的外观∙创建控件事件处理程序∙相关主题向应用程序添加控件可以在XAML 或代码中,或通过使用Silverlight 设计器向应用程序添加控件。
如果希望在代码隐藏文件中引用该控件,则必须通过在XAML 声明中使用x:Name 属性为控件指定名称。
有关更多信息,请参见x:Name 属性。
当您使用Silverlight SDK 或Silverlight 工具包中的控件时,必须引用正确的程序集,并且必须在XAML 文件中添加一个命名空间映射。
使用设计器的一个优势是:当您从工具包中拖动控件时,将自动添加程序集引用和命名空间映射。
如果您在XAML 或代码中添加控件,则必须手动添加程序集引用和命名空间映射。
有关XAML 命名空间映射的更多信息,请参见Silverlight XAML 命名空间以及将XAML 命名空间映射为前缀。
使用设计器将控件添加到应用程序1.在“工具包”中,找到要使用的控件。
下图显示Silverlight 工具包的一个示例。
2.双击控件以将其添加到设计图面。
- 或-将控件拖到设计图面上的所需位置。
使用XAML 将控件添加到应用程序1.如果需要,请在解决方案资源浏览器中添加对程序集的引用。
2.如果需要,请在XAML 文件中添加一个命名空间映射。
3.在XAML 中声明控件。
Silverlight入门基础
Silverlight入门教程--基于运行环境示例郑健2008-3-9(一).概述 (3)(二). 代码示例 (3)1).基础知识示例 (3)1. 对象的定位 (3)2. 使用SilverLight插件 (8)3. SilverLight元素的鼠标事件 (10)4. SilverLight元素的键盘事件 (16)5.方法createFromXaml使用示例 (17)6.访问和修改Silverlight元素以及属性 (19)7. Silverlight中的字体使用 (21)8.全屏支持功能 (24)9. Silverlight Downloader 对象使用 (26)10.定时器功能 (29)11.错误处理支持 (31)12.把xaml段内置在aspx或html页面中 (34)2).制作图形示例 (36)13.基本图形形状示例 (36)14.画刷对象的使用 (38)15.视频刷对象的使用 (41)16.Path元素使用 (43)17.变换效果(Transform) (44)3).多媒体功能 (46)18.在线电影播放 (46)4).制作动画效果示例 (51)19.一个动画示例 (51)20.动画的交互控制 (53)21.动画关键帧示例 (55)(一).概述Silverlight是一个跨浏览器的、跨操作系统平台的插件,为Web带来下一代媒体体验和丰富的交互式应用程序体验. 使用JS实现Ajax技术可以使网站具有很好的用户体验, 但它也会使网站过于庞大和臃肿. 业余时间学习了一下微软的Silverlight官方教程, 在学习时顺便根据学习示例整理了一个教程. 此教程包括一些精简的小例子, 主要针对开发使用场景展开示例, 在实际开发中也可以作为查找手册使用. 运行环境为VS 2005, 这些示例比较简单很容易看懂, 因此示例没有太多注释.(二). 代码示例1).基础知识示例1. 对象的定位通过呈现几个Silverlight元素来示例对象之间的定位, 以及在一个页面中创建装载多个Silverlight对象.2. 使用SilverLight插件3. SilverLight元素的鼠标事件I.鼠标滑入和滑出事件II.鼠标点击(按下/弹起)和移动事件4. SilverLight元素的键盘事件5.方法createFromXaml使用示例6.访问和修改Silverlight元素以及属性7. Silverlight中的字体使用8.全屏支持功能9. Silverlight Downloader 对象使用10.定时器功能11.错误处理支持12.把xaml段内置在aspx或html页面中这样的话就不用单独的 *.xaml 文件来承载SilverLight对象控件元素内容.2).制作图形示例13.基本图形形状示例14.画刷对象的使用15.视频刷对象的使用16.Path元素使用17.变换效果(Transform)3).多媒体功能18.在线电影播放。
silverlight概念总结
Silverlight学习总结Binding1.概念:绑定(Binding)是指数据属性路径运行绑定,可以不用后台代码赋值。
3.三種重要的屬性:(1).OneTime:一次绑定,在绑定创建时使用源数据更新目标,适用于只显示数据而不进行数据的更新。
(2).OneWay:单向绑定,在绑定创建时或者源数据发生变化时更新到目标,适用于显示变化的数据。
(3).TwoWay:双向绑定,在任何时候都可以同时更新源数据和目标3.创建方法:例如對一個TextBlock的綁定(1)Xaml頁面<TextBlock x:Name="MyTextBlock"Text="{Binding Info,Mode=TwoWay}"/>(2)動態綁定Binding MyBinding=new Binding();MyBinding.Path=new PropertyPath("Info");MyBinding.Mode=BindingMode.TwoWay;MyTextBlock.SetBinding(TextBlock.TextProperty,MyBinding); INotifyPropertyChanged1.概念:当客户端绑定一个数据模型以后,数据模型变化以后可以自动通知客户端更新界面显示,这就是INotifyPropertyChanged接口要做的工作。
INotifyPropertyChanged接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。
若要在将客户端与数据源进行绑定时发出更改通知,则绑定类型应具有下列功能:实现INotifyPropertyChanged 接口。
2.什麽情況下使用數據綁定,UI界面有數據更新,針對某一個對象或者一個集合。
3.创建方法:例如針對某一個InfoPublic Class ZoneTimeIfoImplements INotifyPropertyChangedPrivate_zonetime As StringPublic Property ZoneTime()As StringGetReturn_zonetimeEnd GetSet(ByVal value As String)_zonetime=valueMe.NotifyPropertyChanged("ZoneTime")End SetEnd PropertyPublic Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChangedPrivate Sub NotifyPropertyChanged(ByVal propertyName As String)If Me.PropertyChangedEvent IsNot Nothing ThenRaiseEvent PropertyChanged(Me,NewPropertyChangedEventArgs(propertyName))End IfEnd SubEnd ClassDependencyProperty1.概念:表示向Silverlight依赖项属性系统注册的依赖项属性。
SilverLight学习笔记
SilverLight学习笔记silverlight3,谈谈源码研究与TDD大家都有一个共识:如果你想研究某个框架或者工具的源码,那先必须熟练使用它,熟练之后自然就有一种研究它的冲动,但是往往这个框架或工具比较庞大,很不容易下手,一个很不错的方法就是使用TDD。
我们都知道TDD的基本思想就是在开发功能代码之前,先编写测试代码。
也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。
然后循环进行添加其他功能,直到完全部功能的开发,在此过程中我们可以借助一些工具来协助。
比如我们现在要研究Nhibernate,那么我们首先要熟练它的一些功能,然后从一个点出发慢慢编写单元测试,然后逐渐完善代码,最后直至完成框架的搭建,这样会给我们带来莫大的驱动力和成就感。
除了微软的BCL(Base Class Library)和企业库以外,大家还可以用TDD来试试还原以下的任一开源代码:(/)、Castle()、log4net(/log4net/)、NHibernate(/343.html)、()、Caliburn(/)、MVVM Light Toolkit(/)、Prism(/)、MONO源码()四. 依赖属性续前缘大家都知道WPF和Silverlight带来了很多新的特性,其中一大亮点是引入了一种新的属性机制――依赖属性。
依赖属性基本应用在了WPF的所有需要设置属性的元素。
依赖属性根据多个提供对象来决定它的值(可以是动画、父类元素、绑定、样式和模板等),同时这个值也能及时响应变化。
所以WPF拥有了依赖属性后,代码写起来就比较得心应手,功能实现上也变得非常容易了。
如果没有依赖属性,我们将不得不编写大量的代码。
依赖属性在WPF中用得非常广泛,具体在以下几个方面中表现得尤为突出:◆ UI的强大属性体系◆ Property value inheritance(值继承)◆ Metadata(强大的元数据)◆ 属性变化通知,限制、验证◆ Resources(资源)silverlight◆ Data binding(数据绑定)◆ Styles、Template(样式、模板和风格)◆ 路由事件、附加事件、附加行为乃至命令◆ Animations、3D(动画和3D)◆ WPF Designer Integration(WPF设计、开发集成) 在。
SilverLight学习笔记--silverlight如何在客户端读取文件
出于安全的考虑,在Silverlight中我们不能随心所欲的读写客户端本地的文件系统。
这样不论对客户端还是程序员都是有着安全上的好处的。
在实际操作中,我们能够通过给客户端呈现"打开文件"的对话框,由客户端自己来选择所想要打开的文件,在这种情况下,你的Silverlight应用程序就可以打开这个指定的文件(并且只能打开这种情况下指定的文件)本文我们就实践这一功能。
还是如前面的文章所述,我们首先要建立一个新的Silverlight应用程序,我们把它命名为ReadLocal FilesInSL。
Page.xaml文件的代码内容如下:<UserControl x:Class="ReadLocal_FilesInSL.Page"xmlns="/winfx/2006/xaml/presentation "xmlns:x="/winfx/2006/xaml"Width="400" Height="400"><Grid x:Name="LayoutRoot" Background="DarkBlue" ><Button x:Name="btnOpenFile" Content="Open" BorderTh ickness="2" BorderBrush="WhiteSmoke" Background="Blue" Width="75" Height="25" Click="btnOpenFile_Click"VerticalAlignment="Top" HorizontalAlignment="Lef t" Opacity="1"/><TextBlock x:Name="Status" Margin="0,25,0,0" Foreground="White"/><Image x:Name="Image" MinWidth="200" MinHeight="200 " Margin="0,50,0,0"/></Grid></UserControl>在此代码中,我们建立了一个按钮,当我们点击它时就会跳出打开文件对话框,一个textblock 控件用于显示我们所打开的文件的文件名,以及一个image控件,用于显示我们所选择的图片文件(在本文我们只打开图片文件)为了从一个文件中读取内容,我们就需要创建一个“打开文件”对话框,并把它呈现给客户端用户以供他们作出选择。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单了解 Silverlight 平台
在开始了解 Silverlight 平台前,请看看先前章节中提到的 xap 包.你可以将 Hello word application(也许你完成了,如果没有你可以建立一个新的,直接编译就可以了)项目中位于 ClientBin 文件夹下的 HelloWorld.xap 复制到任何一个地方,将其后缀名由 xap 改成 zip.然 后用工具打开看看所谓的程序包里到底装了写什么东西. 如果你做的程序足够简单你会看到两个 文件 AppManifest.xaml 和 HelloWorld.dll 文件,这些文件会被下载到客户端,然后被客户端 runtime 运行. 这里经历了几个步骤:
以上表明了一点,如果我们想运行 Silverlight 就必须安装它的"插件",就是 Microsoft Silverlight 3 Developer Runtime. 当你安装 Silverlight SDK 或 Silverlight Tools 3.0 software for VS2008 的时候它就会被 安装. 只有安装了 Runtime 才能运行 Silverlight 的应用程序. 这个 Runtime 的安装包中包含: 1.承载 Silverlight 应用的程序的插件. 2.支持运行程序的基础架构.
B 和 A 之间你可以看见是 XAML,你可以通过 XAML 的定义直接访问 B 中提供的支持(原来 中提供的支持( , 传统的概念中, 如果我们要去获得类似的支持只能通过.net framework 提供的 API 在访问. 在访问. 传统的概念中, 如果我们要去获得类似的支持只能通过 定义的方式来访问. 但现在你不仅仅可以通过 API 来用编程的方式来访问还可以通过 XAML 定义的方式来访问. 可以使用来达到相同的目的. 也就是说在这里你有了两套 API 可以使用来达到相同的目的.当然 XAML 不仅仅是只能访问 B 中的功能而已.几乎是你能用代码实现的用 XAML 也可以实现.这是很有趣的一点. 中的功能而已. 也可以实现.这是很有趣的一点. A: 是.net framework for Silverlight 我们觉得比较熟悉的一个部分,它类似于.net framework 的体系结构甚至类的名称几乎都是一样的,虽然它是全新的相对于.net framework 而言.这里我就不多解释了. 在 A 的右边灰色的区域并不属于.net framework for silverlight 的一部分,它是为了支持能 够在浏览器中通过脚本的方式来开发 Silverlight 而设计的.
.NET Framework for Silverlight 的某些部分是通过应用程序部署的.这些"S
包括在 Silverlight 运行时中但将在 Silverlight SDK 中提供的程序集.在应用
Silverlight 库时,它们会与应用程序打包在一起,并下载到浏览器中.这些库包 XLINQ,整合 (RSS/Atom),XML 序列化和动态语言运行时 (DLR). 安装程序和更新程序
是一个安装和更新控件,可简化用户首次安装该应用程序的过程,以后可提供低
我不想从 Sil这个到这里,但怎么能不说明呢?虽然不上面 的解释有些不适让人很好理解,然后总比没有一个标准的基础上再做解释来的好的. 同时我还要 copy 一幅说明它们的图到这里,不过在做后我会对这一切都一个明白的解释.所以 希望你能看完.
1. 获得请求后,Silverlight 的 xap 包及相关的资源会 被下载到本地(这个过程是由 Silverlight 插件触发 的). 2. 在客户端, 一旦程序包下载完毕就会将其载入到程序 域中执行.
也就是说,Silverlight 的平台是运行在客户端的,并不是像 那样运行在服务器端的.对 于 Silverlight 平台而言,它是由核心表现层框架,.NET Framework for Silverlight 和一个 安装程序和更新组件组成.
你可以看到我把上面分割成了三个部分. 你可以看到我把上面分割成了三个部分 C:表示支持 Silverlight 的安装和更新的组件 也可以说 C 就是我们所说的插件 但不完全是. 的安装和更新的组件. 就是我们所说的插件, 集成网络协议栈:要通过网络通信就需要它 要通过网络通信就需要它. DOM 集成:要和浏览器良好沟通就需要它 要和浏览器良好沟通就需要它,Silverlight 是不可能不和浏览器打交道的 是不可能不和浏览器打交道的. 应用程序服务:提供如果启动 提供如果启动,装载和维持应用程序的必要服务,没有它 Silverlight 就无法运 行. 安装程序: 随着技术升级, 相应的 Microsoft Silverlight Developer Runtime 也会不断更新. 它提供了一种智能更新必要组件的方式. 它提供了一种智能更新必要组件的方式 B:这个部分主要处理图形, ,呈现,媒体处理及接收输入等方面的处理,它主要和操作系统以及 它主要和操作系统以及 硬件方面的支持打交道.没有它 Silverlight 是无法帮你提供多样化的视觉听觉及 没有它 是无法帮你提供多样化的视觉听觉及媒体处理方面 的效果的.
1. 如果你建立一个基于.net framework 的项目, 在项 目中你可以应用 Silverlight 的相关程序集包括 SDK 和 runtime. 2. 如果你建立了一个 Silverlight 的应用程序或类库项 目, 那么你想在其中引用.net framework 中的程序 集是不可能的.因为在 Silverlight 的范围内是不支 持.net framework 的.
本文由huangxiangcs贡献
doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
概要
什么是 Silverlight? Silverlight 和.net framework 的关系 简单了解 Silverlight 平台
什么是 Silverlight
组件
说明
核心表示层框架
面向 UI 和用户交互的组件和服务(包括用户输入,用于 Web 应用程序的轻量
播放,数字版权管理和数据绑定)以及表示层功能(包括矢量图形,文本,动画 括用于指定布局的可扩展应用程序标记语言 (XAML).
.NET Framework for Silverlight .NET Framework 中包含组件和库的一个子集,其中包括数据集成,可扩展 W 络,基类库,垃圾回收和公共语言运行时 (CLR).
Silverlight 和.net framework 的关系
严格意义上, Silverlight 是.net frameworkd 的子集. Silverlight 拥有自己的一套 framework, 被称为 .net framewor for Silverlight. 虽然这个 framework 看上去类似于.net framework 的架构体系,但实际上他们是不一样 的 framework for Silverlight 是全新的,但受.net framework 的支持.如果你的机 器并没有安装.net framework 包也一样可以运行 Silverlight,只要你安装了 Microsoft Silverlight 3 Developer Runtime.以下几点要注意:
1. 类似 Flash 的效果在网页中,只是 Silverlight 很好 的和服务器通讯,可以利用 Silverlight 提供更好的 界面体验同时强于 Flash. 2. 它是一个典型的运行在"沙箱"中的程序, 也就是说它 只能有限的访问客户端机器上的资源, 但可以提供很 好用户体验. 3. 如果要比较只能把它和 Flex 技术进行比较.为了理 解方便我才在前面提及到 Flash.