- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9.1.1 什么是WPF
Windows Presentation Foundation(WPF)是Microsoft在.NET 3.0中推出的一个重要新特性,它为Windows下应用程序开发提供一套全新的显示系统,旨在为用户提供方便的用户操作和震撼视觉体验的界面。WPF支 持一套完整的应用程序开发功能,包括应用程序开发模型、资源、控件、图形、动画、布局、数据绑定、文档读写、本地化、安全性等。
WPF的核心是一个与分辨率无关的基于向量的呈现引擎,旨在充分发挥现代图形设备的优势,WPF开发和C#集成可以通过Visual Studio 2008非常方便地进行应用程序开发。WPF和公共语言运行环境(CLR)的完全集成,充分利用了CLR提供的类型安全、跨平台等特性。
另外,WPF在CLR之上提供自身的程序模型和类库,如图9-1所示为MSDN上介绍的WPF体系结构。其 中,PresentationFramework和PresentationCore都是基于CLR之上,以托管代码的方式公开应用程序开发接口 (API)的。而milcore则在CLR之下,是以非托管代码方式,直接和DirectX紧密集成的,可以充分利用DirectX在图形处理上的巨大便 利和性能优势,从而为用户提供具有震撼视觉感受的用户界面。milcore是WPF隐藏于CLR之下的核心驱动组件,在实际应用程序开发中不太可能访问 到,这里不再进一步介绍。
WPF体系结构中一个重要原理就是--基于属性,WPF提供的类库、操作方式等都尽可能使用属性,而不是方法或事件。因为属性是声明性的,较之方法 和事件更加容易指定对象的意图(这在XAML中相当重要),所以属性系统是WPF体系结构中一个重要部分。在WPF属性系统中,属性可以被继承和监视,当 属性被更改时,属性联系的双方都被通知。由于被继承,所以子元素可以感受到父元素属性的变化,例如,父窗体的窗体大小属性被更改时,会自动通知到子窗体, 并同步刷新界面。WPF属性系统的根本是System.Windows. DependencyObject类型,它是WPF属性系统的基类。
在WPF中,System.Windows.Media.Visual类型提供了界面元素的显示支持,它用于生成一个可视化树,树中每个元素都包含 特定的绘制和实现能力,从而将需要的数据显示到界面。另外,Visual类还将托管的WPF组件和非托管的milcore组件链接到一起,通过在屏幕上定 义一个矩形显示区域来提供显示框架,从而将可视化树中各元素呈现到屏幕上。
WPF中大部分类都是从UIElement、FrameworkElement、ContentElement、Framework ContentElement 4个类派生而来,这4个类称为基元素类。其中,UIElement是主要类,它是从Visual类派生而来,适用于支持大型数据模型的元素,这些元素用于 在可以称为矩形屏幕区域的区域内进行呈现和布局,在该区域内,内容模型特意设置得更加开放,以允许不同的元素进行组合。
在WPF中,改变了传统Windows窗体应用程序中的窗体中相对位置计算的布局模式,在WPF中的布局更像网页上元素的布局,显得更加灵活。WPF支持5种常用的布局形式,如表9-1所示。
表9-1 WPF中的常用布局模式
模 式 说 明 Canvas 定义一个区域,在此区域内,可以使用相对于Canvas区域的坐标显式定位子元素,类似于传统的Windows窗体程序中相对坐标的布局方式 DockPanel 定义一个区域,在此区域内,可以使子元素互相水平或垂直排列,对于简单的单行或单列元素布局比较适用 Grid 定义由行和列组成的灵活网格区域,类似于网页开发中的网格布局,对于比较复杂而灵活的界面布局比较适用 StackPanel 沿水平或垂直方向将子元素排列成一行,对于简单的行或列布局比较适用 WrapPanel 从左至右按顺序位置定位子元素,在包含框的边缘处将内容断开至下一行,后续排序按照从上至下或从右至左的顺序进行,具体取决于Orientation属性的值 表9-1中列出的布局模式实际是不同类型的面板控件,这些面板本身可以装入其他类型的面板,这样就可以得到不同布局模式的组合,从而构建丰富灵活的 应用程序界面。例如,在一个Grid面板的各单元内放入Canvas面板,就可以得到整体为Grid布局,但内部却是绝对位置布局的界面样式。
除了在窗体布局上的更改之外,WPF支持动画、二维图形、三维图形等图像处理和多媒体技术,另外,WPF还支持文档的打开和阅读等。由于篇幅限制,这里不再详细介绍。总之,通过WPF可以轻松开发出具有丰富UI的应用程序。
9.1.2 WPF开发模式
Windows Presenta
文档评论(0)