當前位置:編程學習大全網 - 編程語言 - WPF基礎教程之屬性系統

WPF基礎教程之屬性系統

Windows Presentation Foundation (WPF) 提供了壹組服務 這些服務可用於擴展公***語言運行庫 (CLR) 屬性的功能 這些服務通常統稱為 WPF 屬性系統 由 WPF 屬性系統支持的屬性稱為依賴項屬性 本概述介紹 WPF 屬性系統以及依賴項屬性的功能 這包括如何在可擴展應用程序標記語言 (XAML) 中和代碼中使用現有的依賴項屬性 本概述還介紹了依賴項屬性所特有的方面(如依賴項屬性元數據) 並說明了如何在自定義類中創建自己的依賴項屬性

 先決條件 本主題假設您在 CLR 和面向對象的編程方面有壹些基礎知識 若要采用本主題中的示例 還應當了解 XAML 並知道如何編寫 WPF 應用程序

 依賴項屬性和 CLR 屬性 在 WPF 中 屬性通常公開為公***語言運行庫 (CLR) 屬性 在基本級別 您可以在根本不知道這些屬性實現為依賴項屬性的情況下直接與它們交互 但是 您應當熟悉 WPF 屬性系統的部分或全部功能 才能利用這些功能

 依賴項屬性的用途在於提供壹種方法來基於其他輸入的值計算屬性值 這些其他輸入可以包括系統屬性(如主題和用戶首選項) 實時屬性確定機制(如數據綁定和動畫/演示圖板) 重用模板(如資源和樣式)或者通過與元素樹中其他元素的父子關系來公開的值 另外 可以通過實現依賴項屬性來提供獨立驗證 默認值 監視其他屬性的更改的回調以及可以基於可能的運行時信息來強制指定屬性值的系統 派生類還可以通過重寫依賴項屬性元數據(而不是重寫現有屬性的實際實現或者創建新屬性)來更改現有屬性的某些具體特征

 在 SDK 參考中 可以根據某個屬性的托管引用頁上是否存在 依賴項屬性信息 部分來確定該屬性是否為依賴項屬性 依賴項屬性信息 部分包括壹個指向該依賴項屬性的 DependencyProperty 標識符字段的鏈接 還包括壹個為該屬性設置的元數據選項的列表 每個類的重寫信息以及其他詳細信息

 依賴項屬性支持 CLR 屬性 依賴項屬性和 WPF 屬性系統通過提供壹個支持屬性的類型來擴展屬性功能 這是使用私有字段支持該屬性的標準模式的替代實現方法 該類型的名稱是 DependencyProperty 定義 WPF 屬性系統的另壹個重要類型是 DependencyObject DependencyObject 定義可以註冊和擁有依賴項屬性的基類

 下面匯集了在本軟件開發工具包 (SDK) 文檔中 在討論依賴項屬性時所使用的術語

 依賴項屬性 壹個由 DependencyProperty 支持的屬性

 依賴項屬性標識符 壹個 DependencyProperty 實例 在註冊依賴項屬性時作為返回值獲得 之後將存儲為壹個類成員 在與 WPF 屬性系統交互的許多 API 中 此標識符用作壹個參數

 CLR 包裝 屬性的實際 get 和 set 實現 這些實現通過在 GetValue 和 SetValue 調用中使用依賴項屬性標識符來合並此標識符 從而使用 WPF 屬性系統為屬性提供支持

 下面的示例定義 IsSpinning 依賴項屬性 並說明 DependencyProperty 標識符與它所支持的屬性之間的關系

  • 上一篇:手機處理器核心真的是越多越好嗎?
  • 下一篇:Python後端開發工程師面試
  • copyright 2024編程學習大全網