Windows Presentation Foundation
Windows Presentation Foundation(WPF)是美國微軟公司推出.NET Framework 3.0及以后版本的组成部分之一,它是一套基于XML、.NET Framework、向量绘图技术的展示層开发框架,微软视其为下一代使用者介面技术,广泛被用于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產生。
佈署 [编辑]
- 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 支援大量影音格式,如: WMV,MPEG 以及某些 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 [编辑]
WPF/E 發展初期為微軟計畫將 WPF 推向各平台的計畫,目前此計畫已經被發展成為 Silverlight 技術。
WPF 應用程式 [编辑]
WPF 是下一代圖形API 在桌面上的延伸。以WPF 撰寫應用程式,具有更高的視覺品質。下表列出微軟自家的產品或是第三協力廠商的主力產品:
- Microsoft Visual Studio 2010
- Microsoft Expression Design
- Microsoft Expression Blend
- Yahoo! Messenger
- New York Times Reader
- Blu
- 腾讯QQ概念版(只能在Windows 7上使用)[2]
参考資料 [编辑]
外部链接 [编辑]
- - .Net Framework 3.0 官方社区 (英文)
- The Windows Presentation Foundation community portal—The WPF section of the .NET Framework 3.0 community site.
- MSDN Windows Presentation Foundation SDK—Software Development Kit for WPF.
- WPFwiki.org—The largest WPF FAQ question and answer repository & Wiki.
- Getting Started (WPF)—Roadmap to information for developers new to WPF.
- WPF SDK Blog—Active blog maintained by the WPF SDK team.
- Windows Presentation Foundation Unleashed—The first WPF book to market, written by the lead developers Adam Nathan。
- Essential Windows Presentation Foundation—An online WPF tutorial and reference, written by Chris Anderson。
- Microsoft Expression Blend—Visual tool for creating Windows Presentation Foundation applications.
- wpf made simple—Provides info/samples on WPF.
- XAML.net Information on XAML and XBAPs, the Windows Presentation Foundation (WPF), .NET Framework 3.0 and Windows Vista]]。
- A Guided Tour of Windows Presentation Foundation—Microsoft's overview of Windows Presentation Foundation.
- Windows Presentation Foundation Security Sandbox—An overview of the sandbox in which WPF browser applications run.
- MSDN Forums for Windows Presentation Foundation—Active discussion forum for WPF developers.
- WPF/E Google Group—Discussion group and list of examples.
- Microsoft goes cross-platform with WPF/E—WPF/E explained in an interview with Microsoft's Director of Developer Tools.
- More than meets the eye in Microsoft's plans—News.com's article on WPF/E
- WPF page on NetFXGuide.com
- A Five Mile Overview of WPF—A high-level overview of WPF for software developers.
- xbap.org—Comprehensive information on XBAP applications.
- DirectX 10 Wiki - Wiki covering WPF and DirectX 10 Tutorials, Samples, Effect, News.
|
|||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||