|
WPF進入我們的生活已經(jīng)很多年。(寫這句話讓我想起來了“我不做大哥好多年”。) 個人認為在UI的實踐中,用戶需要的是易于操作的,更加絢麗的界面。這兩個應(yīng)該是最基本、也是最重要的宗旨。而對于開發(fā)人員就是要用最簡單的方法開發(fā)出盡可能漂亮的界面,并且效率也不能太差。(要求是不是有些過分啦!)除了在一些Web開發(fā)和特殊的應(yīng)用中,很少有開發(fā)組配備單獨的美工,至少目前是這樣吧!根據(jù)自己目前對WPF的了解程度,感覺WPF在其中某些方面確實有超強的震撼力。
客觀上講,Vista操作系統(tǒng)確實給我們帶來了無可比擬的視覺效果。我自己深有體會,在近2個月的時間里每天都是在Vista下的開發(fā),回家后看到XP系統(tǒng),始終有些不爽的感覺。
WPF可以認為是MS利用原有.NET框架的一些特色,加上DirextX的產(chǎn)物。從下圖的WPF組件中,我們可以看出最底層仍然是一些內(nèi)核API。(以下兩張圖片都來自互聯(lián)網(wǎng)。)
其中紅色顯示的組件是WPF的核心。Milcore是一個和DirectX交互的非托管組件,非托管代碼能帶給我們更高效的處理,能更好的和DirextX交互。WPF的所有顯示都是由Dirext完成的。milcore中一個非常重要的功能就是Composition引擎,這個引擎對效率的要求很高,它的具體作用稍后介紹。所以milcore放棄了一些CLR的特征來換取效率。而另外兩個紅色的組件都是建立在CLR基礎(chǔ)之上,利用了.NET的優(yōu)勢。
至于其中的User32組件有什么作用,偶目前的知道的就是在WPF的某些應(yīng)用場景中為了某些兼容需要使用User32,其中就有DWM(桌面窗口管理)。DWM的內(nèi)容又可以寫上一大堆,感興趣的朋友可以看SDK文檔。
我們除了關(guān)心WPF的基本結(jié)構(gòu)外,更重要的 是WPF提供了什么功能,請看下圖:
圖中的每個黃色塊都是一種媒體類型。這就表示WPF可以處理幾乎所有的媒體類型:位圖、3D、音頻、視頻和文本等等。通過WPF,它集成了現(xiàn)在的GDI/GDI+、D3D/OPENGL以及多媒體的DSHOW等等。所有的東西都是等同對象,不管的3D還是2D,或者文本。
結(jié)構(gòu)圖中的Animate塊貫串了整個的結(jié)構(gòu),因為在WPF中我們可以對所有的可視內(nèi)容進行動畫操作。這是非常讓人期待的功能。Animate下面我們再次看到了Composition引擎,前面提到過它是位于milcore組件中。開發(fā)過程中,我們的界面元素功能有多種,比如圖片,視頻等等,最后顯示到窗口的內(nèi)容可以認為只是一張圖片(準確說是Surface)。這個引擎的作用就是合成這些圖片和視頻元素最后進行提交顯示。
怎么感覺是廢話一堆啊!我準備好了,大家的西紅柿、雞蛋不用吝嗇的,盡管雜吧!
NET技術(shù):閑話WPF之一(WPF的結(jié)構(gòu)),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。