快速掌握WPF類層次含義
WPF在實際使用中,往往會用到各種各樣的類。但是,當我們在相關資料中去尋找這些類的應用時,會發現是一個非常麻煩的事情。對于一個開發人員來說,必須牢固掌握WPF類層次的相關概念。如圖2顯示了WPF類層次。
如圖2所示,WPF類層次中主要包括:System.Threading.DispatcherObject、System.Windows.DependencyObject、System.Windows.Media.Visual、System.Windows.UIElement、System.Windows.FrameworkElement和System.Windows.Controls.Control。這些內容與PresentationFramework、PresentationCore有關,其中FrameworkElement和Control屬于PresentationFramework,其余的類屬于PresentationCore。#t#
下面簡單說明一下這些WPF類層次,建議讀者在了解類的同時,要注意它們之間的交互關系:
System.Threading.DispatcherObject WPF中有許多類繼承自DispatcherObject,DispatcherObject提供了處理同步和并發的基本構造。WPF建立在dispatcher提供的消息系統之上。它的工作方式很像win32中的消息泵;事實上,WPF的dispatcher使用User32消息來實現線程間調用。
System.Windows.DependencyObject 構建WPF的一個主要思想是屬性優先于方法和事件。屬性是聲名性的,并且能夠更方便實現開發人員。WPF提供了豐富的屬性系統,其核心是DependencyObject。它的基礎是屬性表達式。屬性系統提供對屬性的稀疏保存。
System.Windows.Media.Visual Visual是一個抽象類,每個FrameworkElement對象都必須繼承該類。該類的主要作用是為WPF提供呈現支持,主要包括輸出顯示,坐標轉換,區域剪切等。以用戶界面控件(例如Button,TextBox)為例,這些控件都繼承Visual類,并使用該類定義的屬性實現所呈現數據的持久化。
System.Windows.UIElement UIElement是構建WPF元素和基本呈現特征的基類。該類繼承自Visual類,其中定義很多與輸入和焦點有關的特性,例如鍵盤事件,鼠標和筆輸入。同時,該類還包括一些與WPF事件模型有關的API。
System.Windows.FrameworkElement FrameworkElement類是連接Framework層次類與Core層次類的連接點。該類不僅繼承了UIElement類,而且還添加了一些功能,例如,布局定義、邏輯樹、對象生命周期事件、支持數據綁定和動態資源引用、支持樣式和動畫。
System.Windows.Controls.Control Control是創建自定義應用程序控件的基類。開發人員可通過重寫Control類所提供的屬性,方法,事件等,為自定義控件添加自定義邏輯。
相信以上內容對于讀者了解WPF類層次會有一定幫助,但是只了解這些是顯然不夠的。作為一名合格WPF開發人員,必須熟悉其他細小,更為常用的WPF類。