版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7WPF编程WPFWindowsPresentationFoundationWindows表现层基础,是微软公司在.NETFramework3.5WPF可以在WindowsVista操作系统平台上开发出具有炫目视觉效果的应用程序,当然也可以应用在WindowsXPWindows2003WPF的特点和机构以及如何在.NET3.5框架上应用WPF。WPF非常容易上手。WPF提供了非常多的新的概念和技术,将会改变传统Windows程序员的WindowsVista操作系统下的全新的表现层技术,WPF完美地整合了矢量图形、提供了一种式编程语言XAML。微软同时提供了Expression设计工具,让设Windows如果读者具有多年的Windows程序设计经验,无论使用何种开发工具,比如VisualBasic、Delphi、C++等,为了创建Windows用户界面,都会直接或间接地使用到Windows操User32:提供WindowsGDI/GDI+:提供绘图API很多应用程序开发框架中,提供UI或绘图开发方法都是对这两个子系API的Win32APIBolandVCL、微软的MFC等。Windows1.0Windows图形服务已经越来越稳固。然而随着软件技术的日益发展,传统的图形UI已经越来越难以满足用户对界面日益增长AvalonWindowsPresentationFoundation,摆脱了传统图形UI开发的不足,不再基于User32GDI/GDI+DirectX技术。技术的复杂性,以及其与硬件图形卡的紧密结合的特性,很少有软件基于DirectX来进行开发。WPF的出现弥补了这种不足,意味着开发人员可以在普通的商业应用程序中应用一User327.1.3小节中WPF架构时,将会具体讨论WPF如何利用DirectX进行表示层的呈现。WPF的功能特WPF使用Direct3D进行图形的渲染,充分利用显卡的GPU,即图形处理单元面,在不同的显示分辨率下时,会呈现不同的显示大小,WPF弥补了这种不足。式的程序设计:WPF使用全新的XAML标记语言,进行用户界面的设计,配合代码后置文件来开发应用程序。如果读者有过ASP.NET程序开发经验,那么WPF这种开发方式有点类传于ASP.NET,一个前端页面和代码后置文件。Web风格的布局模型:WPF增强了流式布局模型体验,除了使用特定坐标进行固丰富的绘图模型:WPF除了可以处理基本图形、文本块之外,还提供了很多的新的绘图特性,比如真正的透明控件,使用不同的堆叠多个控件以及原生的3D支持特性。原生的多、动画支持:现在,WPF应用程序内置了动画特性。设计人员可以使用XAML标记语言或借助于ExpressionBlend设计工具来设计动画。同时,也可以使用ExpressionBlend设计多音。这个工具会生成XAML代码,进而丰富WPF应用程序的可交互性。样式和模板特性:类似于ASP.NET中的,或者是CSS样式特性,使应用程序可以重用已有的样式设定。模板允许更改任何元素的呈现方式,比如可以通过模板控制Button控件的输出。基于页面的应用程序:WPF允许开发人员创建浏览器风格的应用程序,让用户使用类似超的方式在页面中进行导航。应用程序也可以在浏览器中比如FirefoxInternetExplorer中运行。WPF处理了很多繁杂的细节,比如历史页面等。WPF架构简WPF7.1WPF分为三层结构,最WPFWPF7.1WPFPresentationFramework.dll:在该程序集中放置次的WPF类型,比如窗口、面板以及其他类型的控件。它实现了一些次的抽象,比如样式等。开发人员所和DependencyObjectMilcore.dll:这是WPF输出系统的,也是多整合层的基础。这个程序集主要用于与DirectX进行交互。图像显示、缩放bitmmapJPEG。WPF的类层次结7.2WPF中的基类层次结构,在本书的后续章节会对由这些基类派生出来的子类进行详细地介绍。在深入学习WPF应用程序之前,有必要大概了解一下WPF中的类层次结WPF的核心命名空间都以System.Windows开始,比如System.Windows,这是WindowsForms编程工具箱的一部分。下面对这些基类进行分别介绍,如下所示。System.Threading.DispatcherObject类:WPF用户界面元素交互时,将会产生不安全的影响。为了简化这个模型,WPF使用一DispatcherObject派生子类,应用程序的用户界面可以检7.2WPF基类的类层次结构System.Windows.DependencyObject:WPF主要通过属性来与界面元素交互。WPF提供了一套强大的属性系统,并使用式的属性语法。使用属性的一个例子是赖关系更改时,会自动重新验证属性值。例如,如果具有一个继承的属性如System.Windows.Media.VisualVisual类看成是一个图形对象,WPF中的WPFAPImilcore.dllVisual的任何类都有能System.Windows.UIElement:UIElement定义了WPF的子系统,包括布局Layout、输入Input和Event、焦点等。比如布局,这是WPF的一个。UIElementMeasureArrange两阶段的处理Panel控件时将会进行详细地介绍。UIElement引入了增强的事件传递系统,称为路由。路由可以将上下沿传递。本书在讨论依赖System.Windows.FrameworkElement:作为WPF继承层次树的终止点,FrameworkElementUIElement仅定义的成员。比如,UIElement设置WPF布局系统的基础,而FrameworkElement则包括几个关键的属性提供对布System.Windows.Shapes.Shape:基本的形状类,比如从该类派生的Rectangle、Polygon、Ellipse、Line和Path等。TextBox、ButtonListBox等。Control类添加了一些属性比如设置字体、前景色和背景色等。别外,Control类还提供了对控件模板的支持,允许开发人员使用自注意:WindowsForms不同的是WindowsForms中,每个呈现在Form上的对象WPF则与之不同,可视化对象称为元素,只有能够接收焦点并System.Windows.Controls.ContentControl:这是WPF中一个非常重要的基类。ContentControl是其他内容控件继承自的类,用来呈现单块内容。派生自ContentControlContent属性。ContentObject,因此,在ContentControl中可以放置的内容没有任何限制。可以使用可扩展应用程序标记语言(XAML)或代码来设置Content。System.Windows.Controls.ItemsControl:这是所有集合项控件的基类,比如WPF前面介绍了太多的理论知识,现在来介绍开发WPF的工具。一般经常使用的开发工具有如下4个:VisualStudio2008、ExpressionBlend、XAMLPad标记文本查看器和ZAM3D。VisualStudio2008WPFVisualStudio2008。VisualStudio2008提WPF7.37.3中可以看到,VisualStudio2008提供了如下所示的4种WPF项目模板。WPFWindowsFormsexe为扩展名的类似于.NETFramework的其他项目模板,开发人员可以在VisualStudio中开发两种WPFWPFWPF自定义控件库来为WPF应用程序创建可重用的组件。VisualStudio2008WPF的开发提供了一个所见即所得的XAML设计窗口,如图7.4所示。图7.3VisualStudio2008的WPF项目模 图7.4VisualStudio2008的XAML设计窗7.4ASP.NETSplit设计视图,开发人员可以从左侧的XAMLXAML代码区将会自动产生通常一个XAML文件会关联到一个代码后置(Code-Behind)文件,可以通过按下F7键序代码的编写。VisualStudio2008优秀的智能提示和代码片断功能,大大提高了开发的效ExpressionBlendWPF的首选交互式设计工具,其操作界面非常类似于一款矢量绘图软件。Blend主要用于设计WPF应用程序的交互式设计。设计人员可以使用ExpressionDesignXAMLBlendXAML文件,在Blend中设计交互以及动画。界面如图7.5所示。 图 ExpressionBlend设计工用户界面的设计。ExpressionBlend的“新建项目”框如图7.6所示。应用程序,一种是控件库。当设计人员在Expression中设计好WPF应用程序的外观后,可以直接导入到VisualStudio2008/XAMLPad标记文本查看的视觉呈现,其界面如图7.7所示。图7.6ExpressionBlend的“新建项目” 图7.7XAMLPad工XAML文本呈现的内容。在右侧,XAMLPadXAML文本的视觉树和属性树。在本书后面的内容中会详细讨论这两个WPF中的重要概念。使用XAMLPad,开发人员可以最近一次使用的XAML文本。XAMLPadXAML语法,并重新显示新的XAMLWindowsF5键,XAMLPad会自动弹出一PageXAML会自动的呈现在上方的XAMLPad帮助ZAM3D第工具(3D模型ZAM3D是一款功能强大的创建WPF3D图形的第工具。该工具可以将3D模型XAML格式,然后可以使用ExpressionBlendDesign来3DZAM3D工具,设计人员可以进行三维建模,设计三维动画,然后将结果导出为XAML的格式。ZAM3D操作界面如图7.87.8ZAM3D操作界读者可以从ht /products/ZAM3D/DefaultPDC.asp或取更详细的信息,并且可以在该上相关的Demo来进行学习。VisualStudio2008WPFWindows应用程序,然后会VisualStudio2008WPF项目模板来WPF应用程序。首WPF项目模板来创建一个简单的oWPF示例项目,步打开VisualStudio2008,如果读者的机器上尚未安装,可以到下面的这个进 命令,将弹出如图7.9所示的“新建项目”框,在该框中选择Windows项目,选择“WPF应用程序”选项。将该项目命名为oWPF,单击“确定”按钮,VisualStudio2008将进入WPF的默认窗口设计窗口。从左侧的工具箱中拖动一个按钮到VS2008的窗口设计视图中。可以看到,在XAML视图区会自动地添加相应的XAML代码。开发人员也可以不管设计视图,直XAML代码,VS2008的智能提示功能非常的完美。为了查看设计XAMLButtonVS2008生成的代码的区别。这是一种非常好的学习XAML的方式。在VS2008Name属性为btno,设置其ContentoWPF7.10图7.9新建WPF应用程序项 图7.10在属性编辑器中设置按钮的属btno按钮,VS2008会自动切换到后置代码(Code-Behind)窗口,并生成了单击框架。在其中添加一个MessageBox方法,用于当用户单击按钮后,弹出一privateprivatevoid{o_Click(objectsender,RoutedEventArgsMessageBox.Show("欢迎学习WPF,这是第一WPF应用程序}可以看到该单击的参数是RoutedEventArgs类型。这是WPF中应用广泛的VS2008自动添加了单击。如下所示。<Window Title="WPF应用示例Height="300<ButtonMargin="108.171,113.625,94.536,125.442" o说明:前面在属性窗口中的设置都可以从XAML看到WPFWPF应用程序中,是由代码和标记语言的组成,类似于ASP.NET中的HTML元素与代码后置F5键运行该示例程序,可以看到非常类似于一个传统的Win32窗体。当单击oWPF按钮7.11
7.11WPF标准应用程序运行效VS2008WPF7.3节的项目为基础。当使用App.xamlApp.xaml.cs文件:这两个文件是WPF应用程序的应用程序的入WPFApplication类的实例化表示。在每一个WPF应用程序该类管理着WPF应用程序的生命周WPF应用程序中创建多个App.xaml文件。7.12WPF解决方法项App.xaml.csWindow1.xamlWindow1.xaml.csVS2008中默认生成的窗体文件,WPF应用程序可能具有多个窗体、页面等。可以在“解决方案资源管理器”中右击项目名称,在弹出的快捷菜单中选择“添加新项”命令来添加的窗体只有理解WPF应用程序的结构,才能真切地体会到这些文件背后的意义。其实,以便管理应用程序的生命期。Windows1.xaml及其代码后置文件也是可选的,开发人员可以只创建Windows类的实例,交付给Application类即可。说明:一个WPF应用程序通常是由一个XAML文件和一个代码后置文件组成,这不是绝将会详细地介绍XAML语言以及Application类。WPF与.NETFramework3.5通信基础。WindowsCommunicationFoundation,简称为WF的Windows工作流基础WindowsWorkflowFoundation,以及用于统一验证的WindowsCardSpace。这些技术都可以与WPF紧密集成,大大简化和统一.NET平台上的应用软件的开发。WindowsCommunicationFoundation概WindowsCommunicationFoundationWCF,是微软构建面向服务的应用程序而提WCF,将不用关注一些零散的技术,比如WebService、Remoting以及MSMQ等。这让开发热门的一种开发观念,WCF则是微软SOA的一种编程实现。WCF的主要设计目标有3WCFWPF类似,是基于.NETFramework3.5平台上的一组类库。使用这组类库,开发人员可以使用熟悉的.NET程序语言开发分布式应用程序。WCF实现上是高效地整合Web服务、.NET企业服务、NETRemotingMSMQ等技术。开发员可以使用特性式编程,简化了不必要的底层复杂性。WCF的两个的程序集如下所示。这两个程序集定义了很多新名空间和类型,读者可以参考相关的书籍或者是System.Runtime.SerializationWCF中控制数据序列化和反序列化的多个System.ServiceModel.Configuration:定义多个用于编程WCF配置文件的类型System.ServiceModel.Description:定义为WCF配置文件中定义的地址(Addresses,System.ServiceModel.MsmqIntegration:包含与MSMQ一个WCF应用程序通常包含3个相关LL调用者能够进行通信的类型,也称为契约WFS2008WF对WF生7.13 图7.13WCF服务库模关于WCF编程技术的信息,如果读者有,可以参考相关的书籍,这是一个WindowsCardSpace概WindowsCardSpace是一种统一验证的平台。这种技术使用一种统的方法来识别用户的,解决了用户拥有繁多的烦恼。随着互联网内容的日渐丰富,用户的选择性也越来越多,导致所需的用户名和也越来越多。最让人头疼的是也日渐增多。CardSpace技术被设计用于解决这些问题。CardSpace是的标识元系统的实当安装了.NETFramework3.5之后,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 星际探测器自主控制算法-洞察分析
- 田七胶囊安全性研究-洞察分析
- 水力发电能耗分析-洞察分析
- 文化企业并购优化-洞察分析
- 栓子降解微生物群落稳定性分析-洞察分析
- 文学传统与现代-洞察分析
- 学生考试成绩分析总结范文(31篇)
- 先进教育技术下的教学创新策略报告
- 办公自动化与农业银行合规律条的同步发展
- 全球视野下的语文跨文化教育模式研究
- MOOC 作物育种学-四川农业大学 中国大学慕课答案
- 变电站隐患排查治理总结报告
- 异彩纷呈的民族文化智慧树知到期末考试答案2024年
- 国标《电化学储能电站检修试验规程》
- 车辆救援及维修服务方案
- 三体读书分享
- 天津市长期护理保险护理服务项目和标准
- 2011年1月自考03706思想道德修养与法律基础试题及答案含解析
- 2024年内蒙古巴彦淖尔市交通投资集团有限公司招聘笔试参考题库含答案解析
- 2024年南平实业集团有限公司招聘笔试参考题库附带答案详解
- 咖啡学概论智慧树知到期末考试答案2024年
评论
0/150
提交评论