一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

圖解DotNet框架之九:WPF

 quasiceo 2012-12-17

圖解DotNet框架之九:WPF

分類: .NET C# 153人閱讀 評論(0) 收藏 舉報(bào)

WPF可以認(rèn)為是MS利用原有.NET框架的一些特色,加上DirextX的產(chǎn)物。將原有的編程模型統(tǒng)一化.

我們來看看WPF的運(yùn)行機(jī)制.

 

 

那么我們現(xiàn)在來分析一下WPF的運(yùn)行過程吧。

 

 

首先從第一個(gè)方塊說起:WPF的進(jìn)程會加載四個(gè)程序集,Kernel,User32,DirectX,milcore.他們對原有的CLR進(jìn)行了擴(kuò)展。我們看看他們分別起什么作用。Kernel,它負(fù)責(zé)控制和管理與圖形驅(qū)動相關(guān)的最底層任務(wù)等。在Kernel之后也是兩個(gè)比較底層的模塊。其中,User32負(fù)責(zé)確定顯示窗口及其在屏幕中的位置狀態(tài)等,其并不參與常見控件的呈現(xiàn)。DirectX負(fù)責(zé)呈現(xiàn)窗口和內(nèi)容等。milcore是WPF的核心部分,它主要起到中間人的作用,以實(shí)現(xiàn)WPF與DirectX的通信(非受管模塊)。

 

第二個(gè)方塊:由CLR來加載WPF的另三個(gè)程序集WindowsBase,PresentationFramework和PresentationCore,它們都是受管模塊。我們下邊要講解的WPF主要類型,基本都來自于這三個(gè)dll。

 

WindowsBase是WPF API基礎(chǔ)架構(gòu)的核心類型。

PresentationCore主要包括WPF的一些基本類型,例如UIElement,Visual等。它們是PresentationFramework所包括元素的基類。

PresentationFramework主要定義WPF的窗口、面板、樣式等高層WPF類型。

 

第三個(gè)方塊:編譯好機(jī)器碼以后,就可以執(zhí)行指令了,這里會創(chuàng)建Systemdomain,它包含了SharedDomain和默認(rèn)的應(yīng)用程序域,也就是當(dāng)前應(yīng)用程序自己的域,前面我們說過一個(gè).net進(jìn)程中可以包含多個(gè)默認(rèn)的應(yīng)用程序域,而這些應(yīng)用程序域都會用到mscorlib.dll,如果每個(gè)默認(rèn)的應(yīng)用程序域中都去加載它,那么無疑會造成內(nèi)存的浪費(fèi),所以就有了SharedDomain,它是用來放所有Domain都要用到的Dll,這樣就避免了浪費(fèi)內(nèi)存.也優(yōu)化了加載的速度.

 

第四個(gè)方塊:這時(shí)候默認(rèn)的應(yīng)用程序域,就會去找到WPF項(xiàng)目中的Main方法.

 

OK明白了WPF的啟動過程,我們來看看WPF程序中要用到的主要類的層次關(guān)系:

 

 

 

DispatcherObject: WPF中有許多類繼承自DispatcherObject,DispatcherObject提供了處理同步和并發(fā)的基本構(gòu)造。WPF建立在dispatcher提供的消息系統(tǒng)之上。WPF的dispatcher使用User32消息來實(shí)現(xiàn)線程間調(diào)用。 

DependencyObject :構(gòu)建WPF的一個(gè)主要思想是屬性優(yōu)先于方法和事件。WPF提供了豐富的屬性系統(tǒng),其核心是DependencyObject。


Visual:該類的主要作用是為WPF提供2D呈現(xiàn)支持,主要包括輸出顯示,坐標(biāo)轉(zhuǎn)換,區(qū)域剪切等。


UIElement:該類繼承自Visual類,是構(gòu)建WPF元素和基本呈現(xiàn)特征的基類,其中定義很多與輸入和焦點(diǎn)有關(guān)的特性,例如鍵盤事件,鼠標(biāo),還包括一些與WPF事件模型有關(guān)的API。 

FrameworkElement:繼承了UIElement類,而且還添加了一些功能,例如,布局定義、邏輯樹、對象生命周期事件、支持?jǐn)?shù)據(jù)綁定和動態(tài)資源引用、支持樣式和動畫。

WPF中的控件,圖形操作,動畫多媒體,以及3D效果就是由下面4個(gè)類的派生類來完成的:


1Control是創(chuàng)建自定義應(yīng)用程序控件的基類。可以重寫Control類所提供的屬性,方法,事件等,為自定義控件添加自定義邏輯。 構(gòu)建WPF應(yīng)用程序頁面的window類就派生自它.還有button,TextBox等控件也派生自他。


 

2Shape:WPF 中呈現(xiàn)二維矢量圖形的基礎(chǔ)類。有 Line、Polyline、Polygon、Path、Rectangle 和 Ellipse等子類??蓮?Shape 類進(jìn)行派生以實(shí)現(xiàn)自定義矢量圖形基元。從 Shape 派生是確保這些自定義基元使用 WPF 布局系統(tǒng)的協(xié)議的最簡單方法。

 

3Freezable:WPF中對動畫和多媒體的操作類,基本上都是派生自它,它實(shí)現(xiàn)了多種生成深層克隆的方法。

 

4Visual3D:提供可視三維對象通用的服務(wù)和屬性,其中包括命中測試、坐標(biāo)轉(zhuǎn)換和邊界框計(jì)算。與Visual類一樣,只不過是3D的基礎(chǔ)類.

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    大香蕉精品视频一区二区| 少妇成人精品一区二区| 国产精品第一香蕉视频| 神马午夜福利一区二区| 日韩一区二区三区嘿嘿| 日本加勒比不卡二三四区| 欧美日韩一级aa大片| 能在线看的视频你懂的| 九九热在线视频观看最新| 国产精品亚洲二区三区| 国产一区二区三区免费福利| 69久久精品亚洲一区二区| 熟妇久久人妻中文字幕| 日韩欧美国产精品自拍| 丝袜美女诱惑在线观看| 日本精品视频一二三区| 98精品永久免费视频| 欧美胖熟妇一区二区三区| 色偷偷亚洲女人天堂观看| 亚洲一区在线观看蜜桃| 国产亚洲中文日韩欧美综合网 | 东京不热免费观看日本| 深夜视频成人在线观看| 亚洲精品蜜桃在线观看| 成人精品一区二区三区综合 | 在线观看视频日韩精品| 国产爆操白丝美女在线观看| 一区二区三区18禁看| 国产又粗又爽又猛又黄的| 国产精品欧美激情在线| 日本免费一级黄色录像| 日韩精品一区二区三区射精 | 粉嫩内射av一区二区| 亚洲一区二区三区国产| 美女被后入福利在线观看| 国产不卡最新在线视频| 亚洲中文字幕高清乱码毛片| 99久热只有精品视频免费看| 欧美日本精品视频在线观看| 中文字幕在线五月婷婷| 国产精品一区二区视频|