日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

WPF框架(转)

發布時間:2023/12/14 asp.net 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WPF框架(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WPF可以認為是MS利用原有.NET框架的一些特色,加上DirextX的產物。將原有的編程模型統一化.

我們來看看WPF的運行機制.

?

?

那么我們現在來分析一下WPF的運行過程吧。

?

?

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

?

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

?

WindowsBase是WPF API基礎架構的核心類型。

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

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

?

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

?

第四個方塊:這時候默認的應用程序域,就會去找到WPF項目中的Main方法.

?

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

?

?

?

DispatcherObject: WPF中有許多類繼承自DispatcherObject,DispatcherObject提供了處理同步和并發的基本構造。WPF建立在dispatcher提供的消息系統之上。WPF的dispatcher使用User32消息來實現線程間調用。?

DependencyObject :構建WPF的一個主要思想是屬性優先于方法和事件。WPF提供了豐富的屬性系統,其核心是DependencyObject。


Visual:該類的主要作用是為WPF提供2D呈現支持,主要包括輸出顯示,坐標轉換,區域剪切等。


UIElement:該類繼承自Visual類,是構建WPF元素和基本呈現特征的基類,其中定義很多與輸入和焦點有關的特性,例如鍵盤事件,鼠標,還包括一些與WPF事件模型有關的API。?

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

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


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


?

2Shape:WPF 中呈現二維矢量圖形的基礎類。有 Line、Polyline、Polygon、Path、Rectangle 和 Ellipse等子類。可從 Shape 類進行派生以實現自定義矢量圖形基元。從 Shape 派生是確保這些自定義基元使用 WPF 布局系統的協議的最簡單方法。

?

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

?

4Visual3D:提供可視三維對象通用的服務和屬性,其中包括命中測試、坐標轉換和邊界框計算。與Visual類一樣,只不過是3D的基礎類.

總結

以上是生活随笔為你收集整理的WPF框架(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。