Windows Presentation Foundation

Windows Presentation FoundationWPF)是美國微軟公司推出.NET Framework 3.0及以后版本的组成部分之一,它是一套基于XML、.NET Framework、向量绘图技术的展示層开发框架,微软视其为下一代使用者介面技术,广泛被用于Windows Vista的界面开发。其早期开发阶段的代号为“Avalon[1]

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

WPF/E是WPF的子集合,全名是:Windows Presentation Foundation Everywhere。在基於XAML與JavaScript之下,可跨越各種平台,目前WPF/E已演化為Microsoft Silverlight,擔負微軟在丰富互联网应用程序領域,並正面與Adobe Flash競爭的產品。

特徵

WPF部份之特徵如下:

繪圖服務

佈署

互操作性

媒體播放

数据绑定

数据绑定是在应用 UI 与其显示的数据之间建立连接的过程。 如果绑定具有正确的设置,并且数据提供适当的通知,则在数据更改其值时,绑定到该数据的元素会自动反映更改。 数据绑定还意味着,如果元素中数据的外部表示形式发生更改,则基础数据可以自动进行更新以反映更改。 例如,如果用户编辑 TextBox 元素中的值,则基础数据值会自动更新以反映该更改。

数据绑定的典型用法是将服务器或本地配置数据放置到窗体或其他 UI 控件中。 此概念在 WPF 中得到扩展,包括将大量属性绑定到不同类型的数据源。 在 WPF 中,元素的依赖属性可以绑定到 .NET 对象(包括 ADO.NET 对象或与 Web 服务和 Web 属性关联的对象)和 XML 数据。数据绑定的方式一共有四种:

数据绑定在展示層並無太大負擔。WPF提供有数据模板(data templates)來控制這些数据。

使用者介面

文件

對OpenType的支援包括:

工具

在以往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

WPF/E發展初期為微軟計畫將WPF推向各平台的計畫,目前此計畫已經被發展成為Silverlight技術。

WPF應用程式

WPF是下一代圖形API在桌面上的延伸。以WPF撰寫應用程式,具有更高的視覺品質。下表列出微軟自家的產品或是第三協力廠商的主力產品:

發行歷史

系列 版本 發佈日期 重要變更/事項 一同發佈的產品
3 3.0 2006年11月 - -
3.5 2007年11月 - -
3.5 SP1 2008年8月 - -
4 4.0 2010年4月 - -
4.5 2012年8月 - -
4.5.1 2013年10月 - -
4.52 2014年5月 - -
4.6 2015年7月 高解析度 (High Dots Per Inch; HDPI) 改善;觸控行為焦點 (Touch) 改善;程式子視窗透明 (Transparent child window) 支援 Visual Studio 2015


参考資料

  1. ^ Gharighi, A. WPF ("Avalon") Demo 1. CodeProject.com. CodeProject. 2006-05-02 [2013-08-22]. (原始内容存档于2021-07-16). 
  2. ^ WPF and Win32 Interoperation Overview. [2007-04-03]. (原始内容存档于2008-02-06). 
  3. ^ QQ实验室. [2012-06-16]. (原始内容存档于2022-04-18). 

外部链接

实现
架構
共同語言基礎架構
CLI支持語言
共同語言1
其他語言2
Core家族3
元件
比較
即將推出
  • "Acropolis"
  • "Jasper"
1微软在Visual Studio.NET Framework中提供了或者将提供支持的语言
2被多數使用者使用,且非教學或研究型的語言。
3具有跨平台(Windows, Mac OSX, Linux)能力的開發框架。
圖形介面
音樂與音效
多媒體
Web
資料存取
網路
通訊
  • 訊息API英语Messaging Application Programming Interface
  • 電話API
  • WCF
管理
元件與模型
函式庫
驱动程序
安全性
.NET
软件工廠
  • EFx Factory英语EFx Factory
  • Enterprise Library英语Microsoft Enterprise Library
  • 複合使用者介面英语Composite UI Application Block
  • CCF英语Microsoft Customer Care Framework
  • CSF英语Microsoft Connected Services Framework
行程間通訊
可協助性
  • Active Accessibility英语Microsoft Active Accessibility
  • 使用者介面自動化英语Microsoft UI Automation
文字與多語系支援
  • DirectWrite
  • 文本服务框架英语Text Services Framework
  • 文本对象模型英语Text Object Model
  • 输入法编辑器
  • 語言介面套件英语Language Interface Pack
  • 多語系使用者介面英语Multilingual User Interface
  • Uniscribe
遊戲開發