色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

閑話WPF之一(WPF的結(jié)構(gòu))

WPF進(jìn)入我們的生活已經(jīng)很多年。(寫這句話讓我想起來(lái)了“我不做大哥好多年 個(gè)人認(rèn)為在UI的實(shí)踐中,用戶需要的是易于操作的,更加絢麗的界面。這兩個(gè)應(yīng)該是最基本、也是最重要的宗旨。而對(duì)于開(kāi)發(fā)人員就是要用最簡(jiǎn)單的方法開(kāi)發(fā)出盡可能漂亮的界面,并且效率也不能太差。(要求是不是有些過(guò)分啦!)除了在一些Web開(kāi)發(fā)和特殊的應(yīng)用中,很少有開(kāi)發(fā)組配備單獨(dú)的美工,至少目前是這樣吧!根據(jù)自己目前對(duì)WPF的了解程度,感覺(jué)WPF在其中某些方面確實(shí)有超強(qiáng)的震撼力。

客觀上講,
Vista操作系統(tǒng)確實(shí)給我們帶來(lái)了無(wú)可比擬的視覺(jué)效果。我自己深有體會(huì),在近2個(gè)月的時(shí)間里每天都是在Vista下的開(kāi)發(fā),回家后看到XP系統(tǒng),始終有些不爽的感覺(jué)。

WPF可以認(rèn)為是MS利用原有.NET框架的一些特色,加上DirextX的產(chǎn)物。從下圖的WPF組件中,我們可以看出最底層仍然是一些內(nèi)核API。(以下兩張圖片都來(lái)自互聯(lián)網(wǎng)。)



其中紅色顯示的組件是
WPF的核心。Milcore是一個(gè)和DirectX交互的非托管組件,非托管代碼能帶給我們更高效的處理,能更好的和DirextX交互。WPF的所有顯示都是由Dirext完成的。milcore中一個(gè)非常重要的功能就是Composition引擎,這個(gè)引擎對(duì)效率的要求很高,它的具體作用稍后介紹。所以milcore放棄了一些CLR的特征來(lái)?yè)Q取效率。而另外兩個(gè)紅色的組件都是建立在CLR基礎(chǔ)之上,利用了.NET的優(yōu)勢(shì)。

至于其中的User32組件有什么作用,偶目前的知道的就是在WPF的某些應(yīng)用場(chǎng)景中為了某些兼容需要使用User32,其中就有DWM(桌面窗口管理)。DWM的內(nèi)容又可以寫上一大堆,感興趣的朋友可以看SDK文檔。

我們除了關(guān)心WPF的基本結(jié)構(gòu)外,更重要的 WPF提供了什么功能,請(qǐng)看下圖:



圖中的每個(gè)黃色塊都是一種媒體類型。這就表示
WPF可以處理幾乎所有的媒體類型:位圖、3D、音頻、視頻和文本等等。通過(guò)WPF,它集成了現(xiàn)在的GDI/GDI+D3D/OPENGL以及多媒體的DSHOW等等。所有的東西都是等同對(duì)象,不管的3D還是2D,或者文本。

結(jié)構(gòu)圖中的Animate塊貫串了整個(gè)的結(jié)構(gòu),因?yàn)樵?/span>WPF中我們可以對(duì)所有的可視內(nèi)容進(jìn)行動(dòng)畫操作。這是非常讓人期待的功能。Animate下面我們?cè)俅慰吹搅?/span>Composition引擎,前面提到過(guò)它是位于milcore組件中。開(kāi)發(fā)過(guò)程中,我們的界面元素功能有多種,比如圖片,視頻等等,最后顯示到窗口的內(nèi)容可以認(rèn)為只是一張圖片(準(zhǔn)確說(shuō)是Surface)。這個(gè)引擎的作用就是合成這些圖片和視頻元素最后進(jìn)行提交顯示。

怎么感覺(jué)是廢話一堆啊!我準(zhǔn)備好了,大家的西紅柿、雞蛋不用吝嗇的,盡管雜吧!

NET技術(shù)閑話WPF之一(WPF的結(jié)構(gòu)),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 长沙市| 县级市| 天水市| 滁州市| 龙里县| 沙坪坝区| 新晃| 盐城市| 建平县| 滨州市| 石台县| 宁晋县| 清远市| 平湖市| 冀州市| 海安县| 福泉市| 灯塔市| 马关县| 河北省| 若羌县| 江城| 正蓝旗| 蓬溪县| 卓资县| 三门县| 乌海市| 乐亭县| 五台县| 岫岩| 电白县| 孝感市| 土默特右旗| 柳江县| 土默特右旗| 治县。| 云南省| 连平县| 团风县| 德庆县| 清水县|