WPF

WPF

WPF(Windows Presentation Foundation)是微軟推出的基於Windows 的用戶界面框架,屬於.NET Framework 3.0的一部分。它提供了統一的編程模型、語言和框架,真正做到了分離界面設計人員與開發人員的工作;同時它提供了全新的多媒體互動用戶圖形界面。

基本信息

定義

WPFWPF
WPF為WindowsPresentationFoundation的首字母縮寫,中文譯為“Windows呈現基礎”,其原來代號為“Avalon”,因與“我佩服”拼音首字母組合一樣,國內有人調侃地稱之為“我佩服”。由.NETFramework3.0開始引入,與WindowsCommunicationFoundation及WindowsWorkflowFoundation並行為新一代Windows作業系統以及WinFX的三個重大應用程式開發類庫。
WPF是微軟新一代圖形系統,運行在.NETFramework3.0及以上版本下,為用戶界面、2D/3D圖形、文檔和媒體提供了統一的描述和操作方法。基於DirectX9/10技術的WPF不僅帶來了前所未有的3D界面,而且其圖形向量渲染引擎也大大改進了傳統的2D界面,比如Vista中的半透明效果的窗體等都得益於WPF。程式設計師在WPF的幫助下,要開發出媲美Mac程式的酷炫界面已不再是遙不可及的奢望。WPF相對於Windows客戶端的開發來說,向前跨出了巨大的一步,它提供了超豐富的.NETUI框架,集成了矢量圖形,豐富的流動文字支持(flowtextsupport),3D視覺效果和強大無比的控制項模型框架。
WindowsPresentationFoundation(以前的代號為“Avalon”)是Microsoft用於Windows的統一顯示子系統,它通過WinFX公開。它由顯示引擎和託管代碼框架組成。WindowsPresentationFoundation統一了Windows創建、顯示和操作文檔、媒體和用戶界面(UI)的方式,使開發人員和設計人員可以創建更好的視覺效果、不同的用戶體驗。WindowsPresentationFoundation發布後,WindowsXP、WindowsServer2003和以後所有的Windows作業系統版本都可以使用它。
WPF是.NetFramework3.0里新推出的主打功能之一,加上Vista集成.NetFramework3.0,改寫Winform時代,可謂是影響巨大!WPF是一套API函式館,由.NetFrameWork3.0以上版本類庫運行。
WPF是Windows作業系統中一次重大變革,與早期的GDI+/GDI不同。WPF是基於DirectX引擎的,支持GPU硬體加速,在不支持硬體加速時也可以使用軟體繪製。高級別的執行緒繪製可以提高使用者的體驗。自動識別顯示器解析度並進行縮放。而Vista就是一個非常典型的例子。

特點

WPFWPF
程式人員與設計完全的明確的分工,美工人員可以使用Expression Studio中套裝工具可視化的設計界面。然後交給程式開發組中的XAML就可以。讓程式人員直接套用到開發環境,不需要想頁面怎么切了。

對與WPF最重要的特色,矢量圖的超強支持。兼容支持2D繪圖,比如矩形、自定義路徑、點陣圖等。文字顯示的增強,XPS和消鋸齒。三維強大的支持。包括3D控制項及事件,與2D及視頻合併打造更立 體效果。漸變、使用高精確的(ARGB)顏色,支持浮點類型的像素坐標。這些對GDI+遠遠不及的。

靈活、易擴展的動畫機制!.Net Framework 3.0類庫提供了強大的基類,只需繼承就可以實現自定義程式使用繪製。接口設計非常直觀,完全面向對象的對象模型。使用對象描述語言XAML。使用開發工具的可視化編輯。

可以使用任何一種.Net程式語言(C#,VB NET等開發語言)進行開發。XAML主要針對界面的可視化控制項描述,成生進會分析成.cs或.vb檔案,並最後將編譯為CLR中間運行語言。

組成結構

Windows Presentation Foundation 由兩個主要部分組成:引擎和編程框架。

WPFWPF

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 設計從基礎代碼中分離出來,從而使開發人員和設計人員之間的合作更加緊密。

選擇理由

WPFWPF
對於企業:WindowsPresentationFoundation實現了改進的客戶關係和不同的應用程式。通過提供能夠快速提供更好的視覺效果、獨特的用戶體驗的技術,來建立與客戶的密切關係,使企業可以建立穩定的數字客戶關係和獨特的品牌化機會。而且,由於WindowsPresentationFoundation是窗體、文檔、視頻、三維以及其他功能的綜合,因此企業可以創建持久的用戶體驗解決方案,並集成到客戶的日常活動中。
對於開發人員和設計人員:WindowsPresentationFoundation提供了統一的UI平台,因此他們只需學習一個模式,就可以獲得無限可能的UI體驗。
對於.NET開發人員:其框架是熟悉的,並且它最終將減少提供最佳用戶體驗和通信邏輯所需的代碼行數。
對於設計人員:WindowsPresentationFoundation提供的平台可消除內容、媒體和應用程式之間的邊界。最重要的是,WindowsPresentationFoundation可以使開發人員和設計人員同步緊密地合作來快速提供不同的連通體驗。

回響程度

目前國內即時通訊領導商騰訊Tencent已經發布了一款基於WPF的QQ 概念版(QQ 概念版:QQ 概念版套用微軟最新一代客戶端展現層技術(WPF),實現多點觸摸操作,是騰訊首款NUI(自然用戶互動)產品,推出了動感相框、動態背景、多Tab聊天視窗、3D互動、桌面好友等一系列新功能,為您打造完美尊貴的新體驗。

運行環境

WPF可以運行在兩種環境下面,如下:

1、 WPF桌面程式,此類型沒有任何限制,可以是Windows可執行程式也可以是DLL動態程式庫。

只需要.Net Framework 3.0以上版本支持及可!

2、 RIA分散式環境,伺服器與客戶端瀏覽器下載使用ActiveX外掛程式方式解釋執行的。微軟更名為Silverlight,由於安全原因,微軟提取精簡版.Net Framework到Silverlight中獨立運行,精簡了很多類庫。

3、瀏覽器承載的應用程式(稱為 XAML 瀏覽器應用程式 (XBAP)),您可以創建能夠使用超連結(Hyperlink 類)導航的頁面 (Page) 和頁函式 (PageFunction(Of (T)))。

服務支持

隨著Vista RTM的發布,微軟新一輪的技術推廣已經開始。其實在此之前,WPF已經有很大的推廣,因為CTP版本已經發布了有一段日子了。當然很多開發人員主要以技術研究為主,也有少數公司已經開始從事基於WPF的產品研發工作。

1. 目前WPF的正式版本已經發布(隨.net framework 3.0正式版發布),你可以從msdn上免費下載

2. WPF的VS2005外掛程式目前還只有社區預覽版(CTP版),也是從msdn上免費下載的,但正式版恐怕還要等一段時間,但使用CTP版本確實已經可以在VS2005中進行所見即所得的WPF開發。

3.WPF/ECTP版本已經發布,你可以在msdn上免費下載。同時發布的還有WPF/E Sample Pack for CTP。

前景分析

WPF其實不僅僅是圖形引擎而已,它將給Windows應用程式的開發帶來一次革命,因為新的架構提供了一種全新的開發模式。當然對於普通用戶而言,最直觀的就是界面越來越漂亮,看起來越來越舒服了;但對於開發人員而言,界面顯示和代碼將更好的得到分離,這與從前的桌面應用程式開發有很多不同(界面設定和代碼是融合在一起的),這是比較具有革命性的改變之一。

還有就是桌面應用程式和瀏覽器應用程式的融合,根據ms的承諾,正在開發中的WPF/E,即WPF Everywhere版本,將為基於WPF的應用程式提供全面的瀏覽器支持,這意味著未來開發出的應用程式將可以基於瀏覽器在不同的作業系統上運行,根據WPF/E開發組的定義,WPF/E仍然是WPF的子集,而不是後繼版本。

控制項介紹

實質

先從UI上分析,UI的功能是讓用戶觀察和運算元據,為了能顯示數據和回響用戶的操作通知程式(通過事件來通知,如何處理事件又是一系列的算法),所以控制項就是顯示數據和回響用戶操作的UI元素,也即:控制項就是數據和行為的載體。

數據驅動UI

什麼是數據驅動UI呢?我們知道傳統的GUI界面都是由windows訊息通過事件傳遞給程式,程式根據不同的操作來表達出不同的數據體現在UI界面上,這樣數據在某種程度上來說,受到很大的限制。WPF中是數據驅動UI,數據是核心,處於主動的,UI從屬於數據並表達數據,是被動的。WPF數據第一,控制項第二。

分類

雖然控制項沒有數據重要,但是還是比較重要的,畢竟是門面啊,只是在數據面前,它比較"有禮貌"。控制項有很多,但是如果仔細去分析,也是有規律可循的,根據其作用,我們可以把控制項分為6類:

布局控制項:是可以容納多個控制項或者嵌套其他布局的控制項,用於在UI上組織和排列控制項。其父類為Panel。

內容控制項:只能容納一個控制項或者布局控制項作為他的內容。所以經常藉助布局控制項來規劃其內容。其父類為ContentControl。

帶標題內容控制項:相當於一個內容控制項,但是可以加一個標題,標題部分也可以容納一個控制項或者布局,其父類為HeaderedContentControl。

條目控制項:可以顯示一列數據,一般情況下,是數據的類型是相同的。其共同的基類為ItemsControl。

帶標題的條目控制項:和上面的帶標題內容控制項類同,其基類為HeaderdeItemsControl。

特殊內容控制項:這類控制項比較獨立,但也比較常用,如TextBox,TextBlock,Image等。

當這些控制項不能夠滿足需求的時候,也可以從受信任的來源下載控制項,並通過添加引用來導入自定義控制項。支持WPF的第三方控制項有:ComponentOne Studio, Spread WPF-Silverlight,ActiveReports等。

相關詞條

相關搜尋

熱門詞條

聯絡我們