Windows Presentation Foundation

来自ITwiki,开放的信息技术大百科

  Windows Presentation Foundation(以前称为“Avalon”)是Windows中新的关键图形子系统,它为用户界面、2D 和 3D 图形、文档和媒体提供了统一的方法。它在.NET Framework基础上生成,并利用 Direct3D进行基于向量的呈现,为生成所有种类的浸入式应用程序提供了强大的解决方案。另外,Windows Presentation Foundation通过提供声明性编程模型来实现“工具性”和灵活性,从而使设计人员成为开发过程不可分割的组成部分。

Windows Presentation Foundation 服务

基本服务 XAML, Property System, Input & Eventing, Accessibility

媒体服务 2D, 3D, Audio, Video, Text, Imaging, Animation, Effects, Composition Engine

文档服务 XPS Documents, Open Packaging Conventions

用户界面服务 Application Services, Deployment, Controls, Layout, Data Binding   

Windows Presentation Foundation分类

可按照如下方式对 Windows Presentation Foundation背后的设计原则进行分类:

  ·继承:Windows Presentation Foundation 提供所标识服务的统一 API。如今的开发人员面临着无数种不同技术和 API 的选择,具体取决于他们是面向 2D 图形(GDIGDI+)、用户界面(USER32 或 Windows 窗体)、媒体 (DirectShow) 还是 3D(Direct3DOpenGL)。Windows Presentation Foundation 提供了一个与上述所有服务正交的单个模型,并允许将内容无缝地集成到单个应用程序。可使用相同的构造来实现动画、数据绑定和样式设置,而无需顾及是面向 2D、3D 还是文本内容。

  ·向量图形。正如引言所述,Windows Presentation Foundation 充分利用了作为现代 PC 系统的组成部分的强大的图形处理单元。本质上,组合引擎基于向量,允许对所有输出进行缩放以便与特定计算机的分辨率匹配。呈现体系结构使用 Direct3D 来完成所有输出:在使用硬件实现 DirectX 7 或更高版本的视频卡上,Windows Presentation Foundation 尽可能地使用 GPU 来呈现输出。在无法使用硬件呈现的情况下,可以退而求其次使用软件呈现。最后,浮点逻辑像素系统和 32 位 ARGB 颜色支持提供丰富的、预见到未来技术需要(如高 DPI 显示器)的高保真体验。

  ·声明性编程。Windows Presentation Foundation 引入 XAML(可扩展应用程序标记语言),这是一种基于 XML 的语言,用于实例化和填充嵌套对象层次结构。尽管 XAML 并非专门局限于 Windows Presentation Foundation,但它本质上是适合于诸如 UI 定义和构建这样的任务的。XAML 的设计使应用程序可在运行时分析和操纵动态工作流方案的 UI 逻辑。重要的是,Windows Presentation Foundation 中体现的 XAML/代码隐藏模型使设计人员和开发人员可使用诸如 Expression“Sparkle”这样的工具以及第三方专家工具(包括 ZAM 3D 和 Mobiform Aurora),相互协作来完成客户端应用程序的设计和开发。

  ·简易的部署。通过对独立应用程序和 Web 浏览器应用程序的支持,Windows Presentation Foundation 提供两种部署模型中的最佳模型。Web 浏览器应用程序从 Internet Explorer 内部运行 — 占据整个窗口或在嵌入式框架中。它们提供 Web 应用程序所闻名的易于部署的特点,并且在部分信任的沙箱内操作(沙箱能够防止客户端计算机受到恶意应用程序的侵害)。然而,它们仍然可以利用本地客户端硬件,并使用 3D 和媒体服务获得目前可以得到的最丰富的 Web 体验。另一方面,独立应用程序通过 ClickOnce 或 MSI 技术在本地安装,并且提供对基础平台的完全访问。

  ·文档生存周期。Windows Presentation Foundation 引入一组新的文档和打印技术。需要将数据永久保存在本地存储区的应用程序可以使用 Open Packaging Conventions(开放打包约定)— 这是一种与 Office 12 共享的基于 ZIP 的打包约定,它支持核心属性和自定义元数据、数字签名以及权限管理功能。对于希望共享文档以便在多台计算机(即使未安装相应的应用程序)之间进行协作的应用程序而言,XML Paper Specification(XML 文件规范)允许以可打印、可移植的格式确立可视化效果。