簡單分析WPF是什么
WPF是什么?對于一個不是長時間接觸開發的人來說可能不太了解這一詞匯。WPF被很多中國開發人員戲稱為“我佩服”。它確實是一個功能比較強大的圖形界面處理工具。#t#
先讓我們來回顧一下微軟的各種界面顯示技術:
User32:它提供了最基本的Windows界面,包括按鈕,編輯框和其他UI元素。但是,User32缺乏的是圖形圖像的繪制功能,無法對屏幕實現自定義的繪制。
GDI (Graphics device interface):- 為了提供圖形圖像的繪制功能,微軟在User32的基礎上引入了GDI。GDI不僅提供了圖形圖像的繪制功能,同時還對硬件顯示進行了更高層次的抽象。換句話說,它將硬件的復雜性封裝在了GDI API中,用戶使用起來更加方便。
GDI+:顧名思義,GDI+是作為GDI的擴展而被引入到Windows中的。它提供了很多GDI所沒有的擴展功能,例如對JPG和PNG圖像格式支持,漸變陰影和抗鋸齒等。無論是GDI還是GDI+,它們最大的局限就是不支持硬件加速,同時無法展現動畫和3D圖像。
提示:所謂硬件加速,就是使用硬件來執行某些功能,以替代使用軟件在CPU中執行的某些功能,因為直接使用硬件,這樣可以顯著地加快圖形圖像處理的速度。
DirectX :正如我們在上面所分析的那樣,GDI及其擴展GDI+的一個最大問題就是不支持硬件加速和動畫。這對于游戲開發者來說,是無法接受的。為了解決這個問題,微軟開發了DirectX。DirectX能夠很好的利用硬件加速,能夠支持3D,全彩圖像,流媒體等等,非常適合游戲工業等對圖形圖像處理要求比較高的領域。
那么WPF是什么呢?
微軟已經有了這么多套關于顯示技術的API,為什么還要多此一舉,創建另外一套顯示技術的API呢?通過對硬件加速的支持,DirectX已經有了很多非常棒的特性。微軟想利用支持硬件加速的DirectX技術來開發UI元素,比如文本框,按鈕,網格等等,所以他們又在DirectX的基礎上開發了WPF。因為WPF是在DirectX的基礎上實現的,所以你不僅可以利用WPF創建簡單的UI元素,還可以更進一步,開發特殊的UI元素,例如網格(Grid),流文檔(FlowDocument)和橢圓(Ellipse)等。
更進一步地,你還可以利用WPF創建動畫。如果你在尋找用于創建輕量級動畫(不是游戲中所使用的那種復雜三維動畫)的技術方案,WPF將是一個不錯的選擇。你可以使用被稱為XAML的XML文件來表現WPF。
WPF是什么,簡單的講,WPF就是DirectX之上的一層包裝。所以,我們可以這樣定義WPF:
WPF是一套用于簡便地構建動態用戶界面的類的集合。這些類包括了一套新的界面控件。其中有些控件跟舊有的UI元素是相似的,例如標簽,文本框和按鈕等,而另外一些控件則是全新的,例如,網格(Grid),流文檔(FlowDocument)和橢圓(Ellipse)等。