網頁

搜尋此網誌

2010年7月28日 星期三

Windows Presentation Foundation Architecture

最近又進一步深入研究Windows Presentation Foundation (WPF),對於一個知識領域,每次閱讀都有不同的收穫,因為視野每次都越來越廣,高度每次越來越高!今天談談WPF的架構(Architecture)

MSDN(Microsoft Developer Network)參考網址:
首先必須要知道,WPF是Managed Code的方式運作,也就是WPF必須使用.Net Framework,然而WPF的顯示為了效能因素,設計時不是在.Net Framework的CLR上運作,看看下面的架構圖就能懂了。

WPF是由PresentationFrameworkPresentationCore milcore(mil=Media Integration Layer)三個部分組成,有三個動態連結程式庫 (DLL) :
  • C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationCore.dll
  • C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationFramework.dll
  • .NET Framework 3.5 SP1milcore.dll更改名稱為wpfgfx_v0300.dll,C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\WPF\wpfgfx_v0300.dll
WPF 在 .NET Framework 中的位置。
WPF的物件非常有架構(OOP就是這樣啊),我們來看看WPF的類別階層(Class Hierarchy)架構,因為實在是太龐大了,我們只看看10個WPF重要的類別。
比較需要注意到的是DispatcherObject類別,這是WPF的基礎運行原理,可以參閱「執行緒模型」,另外,DependencyObject也是WPF中較特別的一個地方,請參閱「相依性屬性概觀」。

最後,我想介紹FrameworkElement類別,FrameworkElement加入重要的邏輯樹狀結構功能,並且泛生許多你會用到的WPF類別,像是控制項、面板、頁面、圖形等等,FrameworkElement的類別繼承階層架構如下(僅列出重要項目):
###

    1 則留言:

    1. 補充:
      Windows 7的milcore位於
      C:\Windows\Microsoft.NET\Framework\v3.0\WPF\wpfgfx_v0300.dll

      C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\wpfgfx_v0400.dll

      回覆刪除

    熱門文章