Windows Presentation Foundation


Windows Presentation Foundation (正體)

WPFWindows Presentation Foundation)是美国微软公司推出.NET Framework 3.0的组成部分之一,它是一套基于XML.NET Framework向量绘图(vector graphic)技术的展示层(presentation layer)开发框架,微软视其为下一代用户界面(user interface)技术,将广泛被用于下一代的Windows平台(Windows Vista)的界面开发。

WPF使用一种新的XAML(eXtensible Application Markup Language)语言来开发界面,这将把界面开发以及后台逻辑很好的分开,降低了耦合度,使用户界面设计师与程序开发者能更好的合作,降低维护和更新的成本。

WPF/E 是WPF的子集合,全名是:Windows Presentation Foundation Everywhere。在基于XAML与JavaScript之下,可跨越各种平台,目前 WPF/E 已演化为 Microsoft Silverlight,担负微软在 RIA (Rich Interactive Application, Rich Internet Application) 领域,并正面与 Adobe Flash 竞争的产品。

目录

特征

WPF 部份之特征如下:

绘图服务

  • 所有的图形皆可由Direct3D产生。
    • 目标在于统一各种显示图形。
    • Windows可以通过Direct3D 来减轻在绘图任务上的负荷,这项技术乃基于计算机显卡的绘图处理单元(Graphics Processing Unit)。
    • 支持向量绘图(vector graphic)。
    • 支持3D透视图并且影响2D应用程序。

布署

  • WPF 不仅仅是建立传统的独立程序(standalone applications)。其部署方式可分成两类:standalone与XAML Browser Applications(XBAP]])观点。这些布署方式在程序的撰写上大致类似。
    • 独立程序之安装方式可以借由 ClickOnce 或微软安装器(MSI)完成。独立程序可被视为完全信任(full trust)具有完全访问系统资源的优点。
    • XAML Browser Application(XBAPs)是一种寄宿于网页浏览器上的程序,像是Internet Explorer。寄宿的程序可取得部份信任(partial trust)的沙箱(sandbox)环境之下,且无法取得完整的系统资源,WPF的功能亦无法完全发挥。寄宿的环境必须有意地防卫恶意的代码。从网页上运行XBAP(读音 "ex-bap")必须是毫无破绽的(没有安全性或安装提示)。虽然这样的寄宿程序在感观上与传统微软的DLL(out of process)有相异处。

互操作性

  • WPF可与Win32互相操作:经由主导(hosting)机制,可以在Win32码之下使用 Windows Presentation Foundation,或是在Windows Presentation Foundation环境下使用Win32代码[1]
  • Windows Forms 的互操作性亦可利用 ElementHost(继承自System.Windows.Forms.ContainerControl)以及 WindowsFormsHost(继承自System.Windows.Forms.Integration)等类达成,同时提供了Host Avalon Element的能力。

媒体播放

  • WPF 针对2D图形提供形状基元(shape primitives),内置笔刷(brushes)、画笔(pens)、几何(geometries),与变形(transforms)。
  • WPF 以Direct3D提供完整的3D功能。但是,WPF 提供更完整的集成性在于用户界面上(UI)、文件(documents),与媒体(media)。这使得尽可以实现 3D UI, 3D 文件,和 3D 媒体。
  • 支持了大量的图片格式(image formats)。
  • WPF 支持大量影音格式,如: WMVMPEG 以及某些 AVI 档。
  • WPF 支持以时间为基础的动画效果,不同于以影格为基础的处理方式。如此动画的速度与系统效能就不会有所关连。
  • 文件的体现支持ClearType,这提供一种次像数(sub-pixel)定位功能,强化其自然风格。WPF 同时支持 OpenType字体样式。

数据链接

  • WPF 有内置数据服务结合,可以让应用程序发展者在应用程序内链接并处理数据。一共有三种数据链接方式:
    • one time:客户端(client)必须忽略服务端(server)的更新动作。
    • one way:客户端仅被准许读取数据(read-only)。
    • two way:客户端可读取并读进服务端。
  • 数据链接在展示层并无太大负担。WPF 提供有数据样板(data templates)来控制这些数据。

用户界面

  • WPF提供了内置元件控件集合,包括有按钮(button)、菜单(menu)、列表盒(list box)。内置元件缺乏DataGrid但第三协力厂商已有支持。
  • WPF 的逻辑层与外观展示层已形成强力的分离模式。
    • 元件的外貌样品可以被完全改写。

文件

对 OpenType 的支持包括:

  • 缚(Ligatures)
  • 旧式数字(Old-style numerals) (for example, parts of the glyph hang below the text baseline)
  • Swash variants
  • 碎形(Fractions)
  • Superscript 及 Subscript
  • Small caps

工具

在以往 Win32 应用程序发展时,绝大多数的工作都由开发人员 (Developer) 来处理,美术设计人员 (Designer) 可以涉入的相当有限,而且在 Win32 API 时代,要在用户界面中实现特效的话,都需要撰写大量的代码才可以做到。

在 WPF 中,因为大多数的用户界面元素都可以利用 XAML 来声明,因此微软试着要将 Designer 和 Developer 结合在一起,如此可以让 Designer 可以充份发挥,并且 Developer 也不用伤脑筋在外观设计上,微软的 Designer 工具为 Microsoft Expression 产品集,其中的 Expression Blend 即为设计 WPF 应用程序的设计工具,它也可以用来设计 Silverlight 程序。

开发人员仍然可以使用 Visual Studio 来发展 WPF 应用程序,在 Visual Studio 中内含 WPF Designer 可供开发人员使用。

WPF/E

主条目:Silverlight

WPF/E 发展初期为微软计划将 WPF 推向各平台的计划,目前此计划已经被发展成为 Silverlight 技术。


WPF 应用程序

WPF 是下一代图形API 在桌面上的延伸。以WPF 撰写应用程序,具有更高的视觉品质。下表列出微软自家的产品或是第三协力厂商的主力产品:

主条目:List of WPF applications
  • Microsoft Expression Design
  • Microsoft Expression Blend
  • Yahoo! Messenger
  • New York Times Reader
  • Blu

参考数据

外部链接







stock | retire | vm
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History