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.
|
|||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||