WPF的介绍
WPF
WPF(Windows Presentation Foundation)是微軟推出的基于Windows 的用戶界面框架,屬于.NET Framework 3.0的一部分。它提供了統一的編程模型、語言和框架,真正做到了分離界面設計人員與開發人員的工作;同時它提供了全新的多媒體交互用戶圖形界面。
定義
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。它提供了超豐富的.NET UI框架,集成了矢量圖形,豐富的流動文字支持(flow text support),3D視覺效果和強大無比的控件模型框架。
Windows Presentation Foundation(以前的代號為“Avalon”)是 Microsoft 用于Windows 的統一顯示子系統,它通過 WinFX 公開。它由顯示引擎和托管代碼框架組成。Windows Presentation Foundation 統一了 Windows 創建、顯示和操作文檔、媒體和用戶界面 (UI) 的方式,使開發人員和設計人員可以創建更好的視覺效果、不同的用戶體驗。
WPF是.Net Framework 3.0里新推出的主打功能之一,加上Vista集成.Net Framework3.0,改寫Winform時代,可謂是影響巨大!WPF是一套API函數庫,由.NetFrameWork3.0以上版本類庫運行。WPF是基于DirectX引擎的,支持GPU硬件加速,在不支持硬件加速時也可以使用軟件繪制。高級別的線程繪制可以提高使用者的體驗。自動識別顯示器分辨率并進行縮放。而Vista就是一個非常典型的例子。
特點
程序人員與美工人員明確分工,美工人員可以使用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 由兩個主要部分組成:引擎和編程框架。
1.WPF引擎。WPF引擎統一了開發人員和設計人員體驗文檔、媒體和 UI 的方式,為基于瀏覽器的體驗、基于窗體的應用程序、圖形、視頻、音頻和文檔提供了一個單一的運行時庫。WPF使得應用程序不僅能夠充分利用現代計算機中現有的圖形硬件的全部功能,而且能夠利用硬件將來的進步。例如,WPF的基于矢量的呈現引擎使應用程序可以靈活地利用高 DPI監視器,而無需開發人員或用戶進行額外的工作。同樣,當 Windows Presentation Foundation 檢測到支持硬件加速的視頻卡時,它將利用硬件加速功能。
2.WPF框架。WPF框架為媒體、用戶界面設計和文檔提供的解決方案遠遠超過開發人員現在所擁有的。WPF的設計考慮了可擴展性,使開發人員可以完全在WPF引擎的基礎上創建自己的控件,也可以通過對現有WPF控件進行再分類來創建自己的控件。WPF框架的核心是用于形狀、文檔、圖像、視頻、動畫、三維以及用于放置控件和內容的面板的一系列控件。這些“自有控件”為開發下一代用戶體驗提供了構造塊。Microsoft 在引入 WPF的同時,還引入了 XAML,這是一種公開表示 Windows應用程序用戶界面的標記語言,可使開發人員和設計人員用來構建和重用 UI 的工具更加豐富。對于 Web 開發人員,XAML 提供了熟悉的 UI 說明模式。 XAML 還使 UI 設計從基礎代碼中分離出來,從而使開發人員和設計人員之間的合作更加緊密。
選擇理由
對于企業:Windows Presentation Foundation 實現了改進的客戶關系和不同的應用程序。通過提供能夠快速提供更好的視覺效果、獨特的用戶體驗的技術,來建立與客戶的密切關系,使企業可以建立穩定的數字客戶關系和獨特的品牌化機會。而且,由于Windows Presentation Foundation 是窗體、文檔、視頻、三維以及其他功能的綜合,因此企業可以創建持久的用戶體驗解決方案,并集成到客戶的日?;顒又?。
對于開發人員和設計人員:Windows Presentation Foundation 提供了統一的 UI 平臺,因此他們只需學習一個模式,就可以獲得無限可能的 UI 體驗。
對于 .NET開發人員:其框架是熟悉的,并且它最終將減少提供最佳用戶體驗和通信邏輯所需的代碼行數。
對于設計人員:WPF提供的平臺可消除內容、媒體和應用程序之間的邊界。最重要的是,WPF可以使開發人員和設計人員同步緊密地合作來快速提供不同的連通體驗。
運行環境
WPF可以運行在三種環境下面,如下:
1、 WPF桌面程序,此類型沒有任何限制,可以是Windows可執行程序也可以是DLL動態鏈接庫。 只需要.Net Framework 3.0以上版本支持即可!
2、 RIA分布式環境,服務器與客戶端瀏覽器下載使用ActiveX插件方式解釋執行的。微軟更名為Silverlight,由于安全原因,微軟提取精簡版.Net Framework到Silverlight中獨立運行,精簡了很多類庫。 3、瀏覽器承載的應用程序(稱為 XAML 瀏覽器應用程序 (XBAP)),您可以創建能夠使用超鏈接(Hyperlink 類)導航的頁面 (Page) 和頁函數 (PageFunction(Of (T)))。
控件
實質
從UI上分析,UI的功能是讓用戶觀察和操作數據,為了能顯示數據和響應用戶的操作通知程序(通過事件來通知,如何處理事件又是一系列的算法),所以控件就是顯示數據和響應用戶操作的UI元素,也即:控件就是數據和行為的載體。 [2]
數據驅動UI
什么是數據驅動UI呢?我們知道傳統的GUI界面都是由windows消息通過事件傳遞給程序,程序根據不同的操作來表達出不同的數據體現在UI界面上,這樣數據在某種程度上來說,受到很大的限制。WPF中是數據驅動UI,數據是核心,處于主動的,UI從屬于數據并表達數據,是被動的。WPF數據第一,控件第二。
分類
雖然控件沒有數據重要,但是還是比較重要的,畢竟是門面啊,只是在數據面前,它比較"有禮貌"??丶泻芏?#xff0c;但是如果仔細去分析,也是有規律可循的,根據其作用,我們可以把控件分為6類:
1布局控件:是可以容納多個控件或者嵌套其他布局的控件,用于在UI上組織和排列控件。其父類為Panel。
2內容控件:只能容納一個控件或者布局控件作為他的內容。所以經常借助布局控件來規劃其內容。其父類為ContentControl。
3帶標題內容控件:相當于一個內容控件,但是可以加一個標題,標題部分也可以容納一個控件或者布局,其父類為HeaderedContentControl。
4條目控件:可以顯示一列數據,一般情況下,是數據的類型是相同的。其共同的基類為ItemsControl。
5帶標題的條目控件:和上面的帶標題內容控件類同,其基類為HeaderdeItemsControl。
6特殊內容控件:這類控件比較獨立,但也比較常用,如TextBox,TextBlock,Image等。當這些控件不能夠滿足需求的時候,也可以從受信任的來源下載控件,并通過添加引用來導入自定義控件。支持WPF的第三方控件有:ComponentOne Studio,ActiveReports,visifire,Stimulsoft Report等
總結
- 上一篇: 李宏毅机器学习笔记:机器学习介绍
- 下一篇: 阿里销售铁军:阿里巴巴客户跟进流程