WPF(Windows Presentation Foundation)是微軟推出的基於Windows 的用戶界面框架,屬於.NET Framework 3.0的一部分。它提供了統一的編程模型、語言和框架,真正作到了分離
界面設計人員與開發人員的工做;同時它提供了全新的多媒體交互用戶圖形界面。
-
中文名
-
Windows呈現基礎
-
外文名
-
Windows Presentation Foundation
-
類 型
-
圖形系統
-
屬 於
-
微軟
WPF 爲Windows Presentation Foundation的首字母縮寫 ,中文譯爲「
Windows呈現基礎」,其原來代號爲「Avalon」,因與「我佩服」拼音首字母組合同樣,國內有人調侃地稱之爲「我佩服」。由 .NET Framework 3.0 開始引入,與 Windows Communication Foundation及 Windows Workflow Foundation並行爲新一代 Windows操做系統以及 WinFX 的三個重大應用程序開發類庫。
WPF是微軟新一代
圖形系統,運行在.NET Framework 3.0及以上版本下,爲用戶界面、2D/3D 圖形、文檔和媒體提供了統一的描述和操做方法。基於DirectX 9/10技術的WPF不只帶來了史無前例的3D界面,並且其圖形向量渲染引擎也大大改進了傳統的2D界面,好比Vista中的半透明效果的
窗體等都得
WPF
益於WPF。 程序員在WPF的幫助下,要開發出媲美Mac程序的酷炫界面已再也不是高不可攀的奢望。 WPF相對於Windows客戶端的開發來講,向前跨出了巨大的一步,它提供了超豐富的.NET UI 框架,集成了矢量圖形,豐富的流動文字支持(flow text support),3D視覺效果和強大無比的控件模型框架。
Windows Presentation Foundation(之前的代號爲「Avalon」)是 Microsoft 用於 Windows 的統一顯示子系統,它經過 WinFX 公開。它由顯示引擎和
託管代碼框架組成。Windows Presentation Foundation 統一了 Windows 建立、顯示和操做文檔、媒體和用戶界面 (UI) 的方式,使開發人員和設計人員能夠建立更好的視覺效果、不一樣的用戶體驗。Windows Presentation Foundation 發佈後,Windows XP、Windows Server 2003 和之後全部的 Windows操做系統版本均可以使用它。
WPF是.Net Framework 3.0
WPF
裏新推出的主打功能之一,加上Vista集成.Net Framework 3.0,改寫Winform時代,可謂是影響巨大!WPF是一套API函數庫,由.Net FrameWork3.0以上版本類庫運行。
WPF是Windows操做系統中一次重大變革,與早期的GDI+/GDI不一樣。WPF是基於DirectX引擎的,支持GPU硬件加速,在不支持硬件加速時也可使用軟件繪製。高級別的線程進行繪製,提升使用者的體驗。自動識別顯示器分辨率並進行縮放。而Vista就是一個很是典型的例子。
[1]
程序人員與設計徹底的明確的分工,美工人員您可使用Expression Studio中套裝工具可視化的設計界面。而後交給程序開發組中的
XAML就能夠。讓程序人員直接套用到開發環境,不須要想頁面怎麼切了。
對 與WPF最重要的特點,矢量圖的超強支持 。兼容支持2D繪圖,好比矩形、自定義路徑,位圖等。文字顯示的加強,XPS和消鋸齒。三維強大的支持。包括3D控件及事件,與2D及視頻合併打造更立 體效果。漸變、使用高精確的(ARGB)顏色,支持浮點類型的像素座標。這些對GDI+遠遠不及的。
靈活、易擴展的動畫機制!.Net Framework 3.0類庫提供了強大的基類,只需繼承就能夠實現自定義程序使用繪製。接口設計很是直觀,徹底面向對象的對象模型。使用對象描述語言XAML。使用開發工具的可視化編輯。
您可使用任何一種.Net編程語言(C#,VB NET等開發語言)進行開發。XAML主要針對界面的可視化控件描述,成生進會分析成.cs或.vb文件,並最後將編譯爲CLR中間運行語言。
[1]
Windows Presentation Foundation 由兩個主要部分組成:引擎和編程框架。
1.
Windows Presentation Foundation引擎。Windows Presentation Foundation 引擎統一了開發人員和設計人員體驗文檔、媒體和 UI 的方式,爲基於瀏覽器的體驗、基於
窗體的應用程序、圖形、視頻、音頻和文檔提供了一個單一的
運行時庫。Windows Presentation Foundation 使得應用程序不只可以充分利用現代計算機中現有的圖形硬件的所有功能,並且可以利用硬件未來的進步。例如,Windows Presentation Foundation 的基於矢量的呈現引擎使應用程序能夠靈活地利用高 DPI監視器,而無需開發人員或用戶進行額外的工做。 一樣,當 Windows Presentation Foundation 檢測到支持
硬件加速的視頻卡時,它將利用硬件加速功能。
2.
Windows Presentation Foundation 框架。Windows Presentation Foundation 框架爲媒體、
用戶界面設計和文檔提供的解決方案遠遠超過開發人員如今所擁有的。Windows Presentation Foundation 的設計考慮了可擴展性,使開發人員能夠徹底在 Windows Presentation Foundation引擎的基礎上建立本身的控件,也能夠經過對現有 Windows Presentation Foundation 控件進行再分類來建立本身的控件。Windows Presentation Foundation 框架的核心是用於形狀、文檔、圖像、視頻、動畫、三維以及用於放置控件和內容的面板的一系列控件。這些「自有控件」爲開發下一代用戶體驗提供了構造塊。
Microsoft 在引入 Windows Presentation Foundation 的同時,還引入了
XAML,這是一種公開表示 Windows應用程序用戶界面的
標記語言,可以使開發人員和設計人員用來構建和重用 UI 的工具更加豐富。對於 Web 開發人員,XAML 提供了熟悉的 UI 說明模式。XAML 還使 UI 設計從基礎代碼中分離出來,從而使開發人員和設計人員之間的合做更加緊密。
爲何選擇 Windows Presentation Foundation?
對於企業:Windows Presentation Foundation 實現了改進的客戶關係和不一樣的應用程序。經過提供可以快速提供更好的視覺效果、獨特的用戶體驗的技術,來創建與客戶的密切關係,使企業能夠創建穩定的數字客戶關係和獨特的品牌化機會。並且,因爲 Windows Presentation Foundation 是
窗體、文檔、視頻、
三維以及其餘功能的綜合,所以企業能夠建立持久的用戶體驗解決方案,並集成到客戶的平常活動中。
WPF
對於開發人員和設計人員:Windows Presentation Foundation 提供了統一的 UI 平臺,所以他們只需學習一個模式,就能夠得到無限可能的 UI 體驗。
對於
.NET
開發人員:其框架是熟悉的,而且它最終將減小提供最佳用戶體驗和通訊邏輯所需的代碼行數。
對於設計人員:Windows Presentation Foundation 提供的平臺可消除內容、媒體和應用程序之間的邊界。最重要的是,Windows Presentation Foundation 可使開發人員和設計人員同步緊密地合做來快速提供不一樣的連通體驗。
國內即時通信領導商騰訊Tencent曾經發布過一款基於WPF的QQ 概念版(QQ 概念版:QQ 概念版是騰訊首款NUI(天然用戶交互)產品,全面實現了多點觸摸操做。在實現IM的基礎功能外,QQ概念版還推出了動感相框、動態背景、多Tab聊天窗口、3D交互、矢量界面、桌面好友等一系列新功能、新體驗以及Windows7的重要新特性。
WPF能夠運行在三種環境下面,以下:
一、 WPF桌面程序,此類型沒有任何限制,能夠是Windows可執行程序也能夠是DLL
動態連接庫。
只須要.Net Framework 3.0以上版本支持便可!
二、
RIA分佈式環境,服務器與客戶端瀏覽器下載使用ActiveX
插件方式解釋執行的。微軟改名爲Silverlight,因爲安全緣由,微軟提取精簡版.Net Framework到Silverlight中獨立運行,精簡了不少類庫。
三、瀏覽器承載的應用程序(稱爲 XAML 瀏覽器應用程序 (XBAP)),您能夠建立可以使用超連接(Hyperlink 類)導航的頁面 (Page) 和頁函數 (PageFunction(Of (T)))。
[1]
隨着Vista RTM的發佈,微軟新一輪的技術推廣已經開始。其實在此以前,WPF已經有很大的推廣,由於CTP版本已經發布了有一段日子了。固然不少開發人員主要以技術研究爲主,也有少數公司已經開始從事基於WPF的產品研發工做。
目前WPF的最新版本爲4.5(對應.net framework 4.5),你能夠從msdn上免費下載。
WPF其實不只僅是圖形引擎而已,它將給Windows應用程序的開發帶來一次革命,由於新的架構提供了一種全新的開發模式。固然對於普通用戶而言,最直觀的就是界面愈來愈漂亮,看起來愈來愈舒服了;但對於開發人員而言,界面顯示和代碼將更好的獲得分離,這與從前的
桌面應用程序開發有不少不一樣(界面設置和代碼是融合在一塊兒的),這是比較具備革命性的改變之一。
還有就是桌面應用程序和瀏覽器應用程序的融合,根據ms的承諾,正在開發中的
WPF/E,即WPF Everywhere版本,將爲基於WPF的應用程序提供全面的瀏覽器支持,這意味着將來開發出的應用程序將能夠基於瀏覽器在不一樣的操做系統上運行,根據WPF/E開發組的定義,WPF/E仍然是WPF的子集,而不是後繼版本。整體而言,WPF的前景應該是一片光明。
實質
先從
UI上分析,UI的功能是讓用戶觀察和操做數據,爲了能顯示數據和響應用戶的操做通知程序(經過事件來通知,如何處理事件又是一系列的算法),因此控件就是顯示數據和響應用戶操做的UI元素,也即:
控件就是數據和行爲的載體。
[2]
數據驅動UI
什麼是數據驅動UI呢?咱們知道傳統的GUI界面都是由windows消息經過事件傳遞給程序,程序根據不一樣的操做來表達出不一樣的數據體如今UI界面上,這樣數據在某種程度上來講,受到很大的限制。WPF中是數據驅動UI,數據是核心,處於主動的,UI從屬於數據並表達數據,是被動的。WPF數據第一,控件第二。
[2]
分類
雖然
控件沒有數據重要,可是仍是比較重要的,畢竟是門面啊,只是在數據面前,它比較"有禮貌"。控件有不少,可是若是仔細去分析,也是有規律可循的,根據其做用,咱們能夠把控件分爲6類:
-
佈局控件:是能夠容納多個控件或者嵌套其餘佈局的控件,用於在UI上組織和排列控件。其父類爲Panel。
-
內容控件:只能容納一個控件或者佈局控件做爲他的內容。因此常常藉助佈局控件來規劃其內容。其父類爲ContentControl。
-
帶標題內容控件:至關於一個內容控件,可是能夠加一個標題,標題部分也能夠容納一個控件或者佈局,其父類爲HeaderedContentControl。
-
條目控件:能夠顯示一列數據,通常狀況下,是數據的類型是相同的。其共同的基類爲ItemsControl。
-
帶標題的條目控件:和上面的帶標題內容控件類同,其基類爲HeaderdeItemsControl。
-
特殊內容控件:這類控件比較獨立,但也比較經常使用,如TextBox,TextBlock,Image等。
[2]
當這些控件不可以知足需求的時候,也能夠從受信任的來源下載控件,並經過添加引用來導入自定義控件。支持WPF的第三方控件有:ComponentOne Studio,ActiveReports,visifire,Stimulsoft Report等。程序員