|
|
51CTO旗下网站
|
|
移动端

1.3 WPF体系结构

《WPF编程宝典——使用C# 2008和.NET 3.5(第2版)》第1章WPF概述,本章将介绍WPF的体系结构,首先会介绍WPF的工作原理,以及它如何为开发下一代Windows应用程序提供支持。本节为大家介绍WPF体系结构。

作者:王德才译来源:清华大学出版社|2009-08-20 16:23

1.3  WPF体系结构

WPF使用多层体系结构。在顶层,应用程序和一个完全由托管的C#代码编写的高层服务集合交互。至于将.NET对象转换为Direct3D纹理和三角形的实际工作,在后台是由一个名为milcore.dll的低级非托管组件完成的。

注意:

milcore.dll是使用非托管代码实现的,因为它需要和Direct3D紧密集成,并且它对性能非常敏感。

图1-3显示了WPF应用程序中各层的工作情况。

 
(点击查看大图)图1-3  WPF体系结构

下面是图1-3包含的一些关键组件:

PresentationFramework.dll包含了WPF顶层的类型,包括那些表示窗口、面板以及其他类型的控件。它还实现了高层编程抽象,如样式。开发人员直接使用的大部分类都来自这个程序集。

PresentationCore.dll包含了基础类型,如UIElement类和Visual类,所有的形状类和控件类都继承自这两个类。如果不需要窗口和控件抽象层的全部特征,可以使用这一层,并且仍然能够利用WPF的渲染引擎。

WindowsBase.dll包含了更多基本的组成部分,这部分具有在WPF之外重用的潜能,如DispatcherObject类和DependencyObject类,这两个类引入了依赖项属性(有关这一主题的细节内容将在第6章中探讨)。

milcore.dll是WPF渲染系统的核心,也是媒体集成层(Media Integration Layer,MIL)的基础。它构成了将可视化元素转换为Direct3D所期望的三角形和纹理的引擎。尽管把milcore.dll看作是WPF的一部分,但它也是Windows Vista的一个核心系统组件。实际上,Windows Vista的桌面窗口管理器(Desktop Windows Manager,DWM)就是使用milcore.dll渲染桌面的。

注意:

milcore.dll被称为"托管图形"引擎。主要是因为公共语言运行库(CLR)管理.NET应用程序的生命期,而milcore.dll管理桌面状态。还因为CLR使开发人员不用再为释放对象和申请内存而烦恼,milcore.dll让开发人员不用再考虑使窗口无效和重新绘制窗口。只需要使用希望显示的内容创建对象即可。当拖动窗口、窗口被覆盖与不被覆盖、最小化窗口和恢复窗口时,由milcore.dll负责绘制窗口的适当部分。

WindowsCodecs.dll是一套提供图像支持的低级API(例如,处理、显示以及缩放位图与JPEG图像)。

Direct3D是一套低级API,WPF中所有的图形都由它渲染。

User32用于决定哪些程序实际占有桌面的哪一部分。所以它仍然被包含进WPF中,但是它不再负责渲染通用控件。

需要明确的最关键的事实是,在WPF中是由Direct3D渲染所有的图形。不管是使用简单的显卡还是使用功能更加强大的显卡,不管是使用基本控件还是绘制更加复杂的内容,也不管是在Windows XP中还是在Windows Vista上运行应用程序。甚至二维图形和普通的文本也被转换为三角形并被传送到Direct3D引擎,而不是使用GDI+或User32渲染图形。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网络管理员备考训练——计算机与网络基础知识

本书是根据全国计算机技术与软件专业技术资格(水平)考试《网络管理员考试大纲》所要求的考试范围而编写的试题集。全书共分10个单元,同步...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊