在WPF中,依賴項屬性和CLR屬性通常作為公共語言運行時(CLR)屬性公開。在基本級別上,您可以直接與這些屬性進行交互,而無需知道它們是作為依賴屬性實現的,但是您應該熟悉WPF屬性系統的部分或全部功能才能利用這些功能。
依賴屬性的目的是提供壹種方法來根據其他輸入的值計算屬性值,例如系統屬性(如主題和用戶首選項)、實時屬性確定機制(如數據綁定和動畫/演示板)重用模板(如資源和樣式)或通過與元素樹中其他元素的父子關系公開的值。此外,它還可以通過實現依賴屬性來提供獨立驗證默認值和監視其他屬性更改的回調,並且可以根據可能的運行時信息強制指定屬性值的系統派生類也可以通過重寫依賴屬性元數據來更改現有屬性的某些特定特征,而不是重寫現有屬性的實際實現或創建新屬性。
在SDK引用中,可以根據屬性的托管引用頁面上是否有依賴屬性信息部分來判斷屬性是否為依賴屬性。依賴屬性信息部分包括到依賴屬性的依賴屬性標識符字段的鏈接、為屬性設置的元數據選項列表、每個類的重寫信息以及其他詳細信息。
DependencyProperty支持CLR屬性。依賴屬性和WPF屬性系統通過提供支持屬性的類型來擴展屬性功能。這是壹種使用私有字段支持此屬性的替代實現方法。此類型的名稱是依賴屬性。WPF財產制度的另壹個重要類型是從屬對象。依賴對象定義了壹個可以註冊和擁有依賴屬性的基類。
以下是本軟件開發工具包(SDK)文檔中討論依賴項屬性時使用的術語集合。
DependencyProperty依賴屬性支持的屬性。
DependencyProperty標識符依賴屬性的實例在註冊依賴屬性時作為返回值獲得後,將作為類成員存儲。該標識符在許多與WPF屬性系統交互的API中用作參數。
CLR包裝屬性的實際獲取和設置實現這些實現使用WPF屬性系統來支持屬性,方法是在GetValue和SetValue調用中使用依賴項屬性標識符來合並此標識符。
以下示例定義了IsSpinning DependencyProperty,並闡釋了依賴項屬性標識符與其支持的屬性之間的關系。