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