




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WPF and Silverlight 学习笔记(一):开发环境及参考资料。前一段时间一直很忙很忙,从4月份开始终于有时间学习一些新的东西了。回头一看,要学习整理的东西太多了:WPF、WCF、WF、Silverlight、JQuery、Ajax、ASP.Net MVC、ADO.Net Entry想了想,终于决定先学习整理一下WPF和Silverlight的内容。并与园子里的朋友分享。笔者的开发环境如下:操作系统:Vista+SP1 英文版开发工具:Visual Studio 2008+SP1英文版 Silverlight 3.0 Beta Silverlight 3.0 Beta Tools for Visual Studio 2008 Expression Blend 3.0 MIX Preview参考资料:APress APress Microsoft MSDN 帮助文件中有关WPF部分Microsoft Silverlight SDK Document(2.0版本、3.0Beta版本)一些系列文章推荐:Silverlight专题-引言Silverlight专题(1)-构建第一个Silverlight应用程序Silverlight专题(2)-添加并使用自定义字体Silverlight专题(3)-使用Deep Zoom ComposerSilverlight专题(4)-自定义提示信息Silverlight专题(5)-Silverlight 2 RC0更新内容Silverlight专题(6)-自定义提示Plugin安装信息Silverlight专题(7)-基本控件介绍Silverlight专题(8)-布局介绍Silverlight专题(9)-WCF通信Silverlight主题(10)WatermarkedTextBox使用Silverlight专题(10)-WCF通信(2)Silverlight专题(11) - Silverlight的单元测试Silverlight专题(12) - 基于Silverlight的Live Search网页搜索Silverlight专题(13) - 基于Silverlight的Live Search资讯搜索Silverlight专题(14) - 基于Silverlight的Live Search图片搜索Silverlight专题(15) - 你自己的视频播放器之自定义MoveToPointSliderSilverlight专题(16)- 动态设置WCF Service配置信息作者:ibillguo学Silverlight 2系列(1):创建一个基本的Silverlight应用学Silverlight 2系列(2):基本控件学Silverlight 2系列(3):界面布局学Silverlight 2系列(4):鼠标事件处理学Silverlight 2系列(5):实现简单的拖放功能学Silverlight 2系列(6):键盘事件处理学Silverlight 2系列(7):全屏模式支持学Silverlight 2系列(8):使用样式封装控件观感学Silverlight 2系列(9):使用控件模板学Silverlight 2系列(10):使用用户控件学Silverlight 2系列(11):数据绑定学Silverlight 2系列(12):数据与通信之WebClient学Silverlight 2系列(13):数据与通信之WebRequest学Silverlight 2系列(14):数据与通信之WCF学Silverlight 2系列(15):数据与通信之ASMX学Silverlight 2系列(16):数据与通信之JSON学Silverlight 2系列(17):数据与通信之ADO.NET Data Services学Silverlight 2系列(18):综合实例之RSS阅读器学Silverlight 2系列(19):如何在Silverlight中与HTML DOM交互(上)学Silverlight 2系列(20):如何在Silverlight中与HTML DOM交互(下)学Silverlight 2系列(21):如何在Silverlight中调用JavaScript学Silverlight 2系列(22):在Silverlight中如何用JavaScript调用.NET代码学Silverlight 2系列(23):Silverlight与HTML混合之无窗口模式学Silverlight 2系列(24):与浏览器交互相关辅助方法学Silverlight 2系列(25):综合实例之Live Search学Silverlight 2系列(26):基本图形学Silverlight 2系列(27):使用Brush进行填充学Silverlight 2系列(28):图片处理学Silverlight 2系列(29):使用Transform实现更炫的效果(上)学Silverlight 2系列(30):使用Transform实现更炫的效果(下)学Silverlight 2系列(31):图形图像综合实例实现水中倒影效果学Silverlight 2系列(32):图形图像综合实例“功夫之王”剧照播放作者:TerryLeeSilverlight 2 (beta1)数据操作(1)使用ASP.NET Web Service进行数据CRUD操作(上)Silverlight 2 (beta1)数据操作(2)使用ASP.NET Web Service进行数据CRUD操作(下)Silverlight 2 (beta1)数据操作(3)使用ADO.NET Data Service (Astoria)进行数据CRUD操作Silverlight 2 (beta1)数据操作(4)调用WCF进行数据CRUD操作Silverlight 2 (beta1)数据操作(5)使用LINQ to SQL进行数据CRUD操作(上)Silverlight 2 (beta1)数据操作(6)使用LINQ to SQL进行数据CRUD操作(下)Silverlight 2 (beta1)数据操作(7)调用FlickR REST APIs来查询图片作者:李永京稳扎稳打Silverlight 2.0 系列文章索引作者:webabcd等等(还有一些文件,我会在引用的位置给出说明)系列文章:WPF and Silverlight 学习笔记(二):WPF和Silverlight概述WPF and Silverlight 学习笔记(三):WPF体系结构WPF and Silverlight 学习笔记(四):WPF应用程序结构HelloWorldWPF and Silverlight 学习笔记(五):WPF应用程序管理文章来源:/DragonInSea/category/184598.htmlWPF and Silverlight 学习笔记(二):WPF和Silverlight概述。本文示例源代码或素材下载WPF(Windows Presentation Foundation,Windows外观基础(直译)是基于Framework 3.0(含以后版本)的新一代Windows界面开发技术。Silverlight(中文翻译为“银光”),可以看成是WPF的Web应用产品,其早先名为WPF/E。其主要应用于Web富客户端应用程序(RIA,Rich Interface Application)。现阶段此技术可以说比较“火”,微软在此方面主要的对手就是Adobe公司的以Flash为基础的Flex技术。两者均是以XAML为基础的,在某些条件下是可以相互的转换:如定义一个简单的ARGB调色版应用:WPF应用程序如下:XAML文件:代码文件:usingSystem.Windows;usingSystem.Windows.Media;namespaceWPFColorVersion/InteractionlogicforMainWindow.xaml/publicpartialclassMainWindow:WindowpublicMainWindow()InitializeComponent();privatevoidsliderValueChanged(objectsender,System.Windows.RoutedPropertyChangedEventArgse)bytea=(byte)(sliderA.Value);byter=(byte)(sliderR.Value);byteg=(byte)(sliderG.Value);byteb=(byte)(sliderB.Value);Colorclr=Color.FromArgb(a,r,g,b);demoArea.Fill=newSolidColorBrush(clr);txtColorValue.Text=clr.ToString();而对应在Silverlight中,XAML文件内:另外,Silverlight的代码文件内容也与WPF项目中的代码相同。WPF应用程序执行的结果如下:在FireFox(3.0.8)及IE(8.0)中执行Silverlight项目的结果如下:从此可以看出,WPF与Silverlight有着千丝万缕的联系,我们在学习过程中可以相互的对比。WPF and Silverlight 学习笔记(三):WPF体系结构。本文示例源代码或素材下载WPF的基础的体系结构,所引用的Assembly如下图所示:关系图中的PresentationFramework、PresentationCore 和 milcore是 WPF 的主要代码部分。在这些组件中,只有一个是非托管组件 core 是以非托管代码编写的,目的是实现与 DirectX 的紧密集成。WPF 中的所有显示是通过 DirectX 引擎完成的,可实现高效的硬件和软件呈现。WPF 还要求对内存和执行进行精确控制。milcore 中的组合引擎受性能影响关系大,需要放弃 CLR 的许多优点来提高性能。在WPF中常用的的控件类继承结构如下图所示:图片看不清楚?请点击这里查看原图(大图)。System.Object类:在.Net中所有类型的根类型System.Windows.Threading.DispatcherObject类:WPF 中的大多数对象是从 DispatcherObject 派生的,这提供了用于处理并发和线程的基本构造。WPF 基于调度程序实现的消息系统。System.Windows.DependencyObject类:表示一个参与依赖项属性系统的对象。System.Windows.Media.Visual类:为 WPF 中的呈现提供支持,其中包括命中测试、坐标转换和边界框计算。System.Windows.UIElement类:UIElement 是 WPF 核心级实现的基类,该类建立在 Windows Presentation Foundation (WPF) 元素和基本表示特征基础上。System.Windows.FrameworkElement类:为 Windows Presentation Foundation (WPF) 元素提供 WPF 框架级属性集、事件集和方法集。此类表示附带的 WPF 框架级实现,它是基于由UIElement定义的 WPF 核心级 API 构建的。System.Windows.Controls.Control类:表示 用户界面 (UI) 元素的基类,这些元素使用 ControlTemplate 来定义其外观。System.Windows.Controls.ContentControl类:表示包含单项内容的控件。System.Windows.Controls.ItemsControl类:表示一个可用于呈现项的集合的控件。System.Windows.Controls.Decorator类:提供在单个子元素(如 Border 或 Viewbox)上或周围应用效果的元素的基类。System.Windows.Controls.Image类:表示显示图像的控件。System.Windows.Controls.MediaElement类:表示包含音频和/或视频的控件。System.Windows.Controls.Panel类:为所有 Panel 元素提供基类。使用 Panel 元素在 Windows Presentation Foundation (WPF) 应用程序中放置和排列子对象。System.Windows.Sharps.Sharp类:为 Ellipse、Polygon 和 Rectangle 之类的形状元素提供基类。详细的有关WPF的控件类及其使用请参考MSDN文档。WPF and Silverlight 学习笔记(四):WPF应用程序结构HelloWorld。按照惯例,创建一个WPF的应用程序,点击按钮,在文本框中显示“Hello WPF World”,我们通过此例来分析WPF应用程序的结构。XAML文件如下:C#代码如下:usingSystem.Windows;namespaceWPFHelloWorldpublicpartialclassMainWindow:WindowpublicMainWindow()this.InitializeComponent();Window.ResizeMode=ResizeMode.NoResize;privatevoidbtnOK_Click(objectsender,RoutedEventArgse)txtValue.Text=HelloWPFWorld!;程序执行效果如图:分析此项目的代码得到如下几点:与基于Windows的应用程序,Web应用程序类型,WPF的窗体也属于“类型化窗体”,即每一个窗体均继承于“System.Windows.Window”类对于WPF控件的属性,可以在XAML文件中声明设置,也可以在代码中设置(这一点和ASP.Net WebControl的属性设置类似)在XAML文件Windows声明中有两个命名空间xmlns=/winfx/2006/xaml/presentation :将整个 Windows Presentation Foundation (WPF) 命名空间映射为默认命名空间xmlns:x=/winfx/2006/xaml :映射单独的可扩展应用程序标记语言 (XAML) 命名空间,通常将其映射为 x: 前缀注意这两个命名空间引用的是URI而不是真实存在的URL对于控件的某些属性,可以直接设置,也可以单独设置。很多 WPF 类型或这些类型的成员扩展了基本字符串属性处理行为,因此更复杂的对象类型的实例可通过字符串指定为属性值。在代码级别,此处理是通过指定处理字符串属性值的 CLR 类型转换器来完成的。如Margin。在本例中StackPanel的Margin属性直接以字符串形式给出,而Button的Margin则是通过CLR映射给出的。如在代码中使用某控件对象,则该对象需在XAML声明中以x:Name方式指定,如在代码中不需访问此控件对象的属性或方法,则不需指定Window声明中的x:Class指定了该XAML文件所对应的后台类,事件的处理方法就是写在这个类中的WPF采用的事件处理与ASP.Net类似,在XAML文件的控件声明位置进行事件绑定,在后台类中给出事件处理方法的具体代码WPF and Silverlight 学习笔记(五):WPF应用程序管理。一、WPF应用程序由System.Windows.Application类进行管理二、创建WPF应用程序创建WPF应用程序有两种方式:1、Visual Studio和Expression Blend默认的方式,使用App.xaml文件定义启动应用程序 App.xaml文件的内容大致如下:1:5:6:7: 其中StartupUri指定启动的WPF窗体2、可以自已定义类,定义Main方法实现对WPF应用程序的启动 在项目中添加一个类,类的代码如下,在项目选项中,设定此类为启动项。1:usingSystem;2:usingSystem.Windows;3:4:namespaceWpfApplicationLifeCycle5:6:publicclassMainClass7:8:STAThread9:staticvoidMain()10:11:/定义Application对象12:Applicationapp=newApplication();13:14:/方法一:调用Run方法,参数为启动的窗体对象15:Window2win=newWindow2();16:app.Run(win);17:18:/方法二:指定Application对象的MainWindow属性为启动窗体,调用无参数的Run方法19:/Window2win=newWindow2();20:/app.MainWindow=win;21:/win.Show();/此处必须有win.Show(),否则不能显示窗体22:/app.Run();23:24:/方法三:25:/app.StartupUri=newUri(Window2.xaml,UriKind.Relative);26:/app.Run();27:28:29:三、应用程序关闭 应用程序关闭时的策略由ShutdownMode属性指定,其类型为System.Windows.ShutdownMode枚举类型,其枚举成员有:OnLastWindowClose(默认值):当应用程序中的最后一个窗体关闭时或调用Application对象的Shutdown()方法时,应用程序关闭。OnMainWindowClose:当主窗体(即启动窗体)关闭时或调用Application对象的Shutdown()方法时,应用程序关闭。(类似于C#的Windows应用程序的关闭模式)OnExplicitShutdown:只有在调用Application对象的Shutdown()方法时,应用程序才会关闭。 更改的时候,可以直接在App.xaml中更改:1:6:7:8: 也可以在代码文件(App.xaml.cs)中更改1:Applicationapp=newApplication();2:Window2win=newWindow2();3:4:/更改关闭模式必须要在调用app.Run()方法之前5:app.ShutdownMode=ShutdownMode.OnExplicitShutdown;6:app.Run(win);四、Application对象的事件名称说明Activated当应用程序成为前台应用程序时发生。Deactivated当应用程序停止作为前台应用程序时发生。DispatcherUnhandledException在异常由应用程序引发但未进行处理时发生。Exit恰好在应用程序关闭之前发生,且无法取消。FragmentNavigation当应用程序中的导航器开始导航至某个内容片断时发生,如果所需片段位于当前内容中,则导航会立即发生;或者,如果所需片段位于不同内容中,则导航会在加载了源 XAML 内容之后发生。LoadCompleted在已经加载、分析并开始呈现应用程序中的导航器导航到的内容时发生。Navigated在已经找到应用程序中的导航器要导航到的内容时发生,尽管此时该内容可能尚未完成加载。Navigating在应用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航空航天产业股权并购与航天器研发协议
- 《哈姆莱特(节选)》课件 统编版高中语文必修下册
- 教师招聘之《幼儿教师招聘》考前冲刺练习题及参考答案详解
- 教师招聘之《小学教师招聘》练习题含完整答案详解【历年真题】
- 绿色信贷对中国银行盈利能力的影响研究
- 教师招聘之《小学教师招聘》全真模拟模拟题及完整答案详解(有一套)
- 内蒙古呼伦贝尔农垦牙克石莫拐免渡河农牧场有限公司招聘笔试题库附答案详解(完整版)
- 2025卫生院医保业务流程
- 2024年呼伦贝尔农垦集团有限公司人员招聘笔试备考及答案详解(新)
- 2025年教师招聘之《幼儿教师招聘》综合提升练习题附参考答案详解(黄金题型)
- Rexroth (博世力士乐)VFC 3610系列变频器使用说明书
- ×××学校“学校学生资助管理机构成立文件”
- 动词过去式和过去分词的变化规则练习及答案
- 第四章 土壤污染调查与风险评价
- GB/T 9877-2008液压传动旋转轴唇形密封圈设计规范
- GB/T 12670-2008聚丙烯(PP)树脂
- 共享服务中心(HRSSC)课件
- 工程结构检测鉴定与加固第1章工程结构检测鉴定与加固概论课件
- 高中心理健康课程《人际关系-寝室篇》课件
- 数字色彩课件
- 一年级上册科学课件-第一单元 走近科学 复习课件-鄂教版(共23张PPT)
评论
0/150
提交评论