共用方式為


DependencyProperty 類別

定義

表示可透過方法設定的屬性,例如樣式、數據系結、動畫和繼承。

public ref class DependencyProperty sealed
[System.ComponentModel.TypeConverter("System.Windows.Markup.DependencyPropertyConverter, PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")]
public sealed class DependencyProperty
[System.ComponentModel.TypeConverter("System.Windows.Markup.DependencyPropertyConverter, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")]
public sealed class DependencyProperty
[<System.ComponentModel.TypeConverter("System.Windows.Markup.DependencyPropertyConverter, PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")>]
type DependencyProperty = class
[<System.ComponentModel.TypeConverter("System.Windows.Markup.DependencyPropertyConverter, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")>]
type DependencyProperty = class
Public NotInheritable Class DependencyProperty
繼承
DependencyProperty
屬性

備註

DependencyProperty 支援 Windows Presentation Foundation (WPF) 中的下列功能:

  • 屬性可以在樣式中設定。 如需詳細資訊,請參閱 樣式和範本化

  • 屬性可以透過數據系結來設定。 如需資料系結相依性屬性的詳細資訊,請參閱 如何:系結兩個控件的屬性

  • 屬性可以使用動態資源參考來設定。 如需詳細資訊,請參閱 XAML 資源

  • 屬性可以從專案樹狀結構中的父元素自動繼承其值。 如需詳細資訊,請參閱 屬性值繼承

  • 屬性可以產生動畫效果。 如需詳細資訊,請參閱 動畫概觀

  • 屬性可以報告屬性的上一個值已變更,而且屬性值可以強制。 如需詳細資訊,請參閱 相依性屬性回呼和驗證

  • 屬性會將資訊報告給 WPF,例如變更屬性值是否應該要求配置系統重新編譯元素的視覺效果。

  • 屬性會接收 Visual Studio WPF 設計工具中的支援。 例如,屬性可以在 [屬性] 視窗中編輯

若要深入瞭解相依性屬性,請參閱 相依性屬性概觀。 如果您想要自定義類型的屬性支援上述清單中的功能,您應該建立相依性屬性。 若要瞭解如何建立自定義相依性屬性,請參閱自定義相依性屬性。

附加屬性是屬性,可讓任何物件向定義附加屬性的類型報告資訊。 在 WPF 中,繼承自 DependencyObject 的任何類型都可以使用附加屬性,不論類型是否繼承自定義屬性的類型。 附加屬性是 XAML 語言的功能。 若要在 XAML 中設定附加屬性,請使用 ownerTypepropertyName 語法。 附加屬性的範例是 DockPanel.Dock 屬性。 如果您想要建立可用於所有 DependencyObject 類型的屬性,則應該建立附加屬性。 若要深入瞭解附加屬性,包括如何建立它們,請參閱 附加屬性概觀

XAML 屬性使用方式

<object property="dependencyPropertyName"/>  

-或-

<object property="ownerType.dependencyPropertyName"/>  

-或-

<object property="attachedPropertyOwnerType.attachedPropertyName"/>  

XAML 值

dependencyPropertyName
指定所需相依性屬性 DependencyProperty.Name 的字串。 如果屬性不在預設 XML 命名空間中,則這個前置詞可以加上 XML 命名空間前置詞(如需詳細資訊,請參閱 XAML 命名空間和命名空間對應>。

ownerTypedependencyPropertyName
字串,指定相依性屬性的擁有者類型、點 (.),然後指定 DependencyProperty.NameownerType 前面也可以加上 XML 命名空間前置詞。 這種使用方式特別適用於晚期綁定樣式和範本,因為目前還不清楚 TargetType,因此必須指定相依性屬性的擁有者來剖析內容。 如需詳細資訊,請參閱 樣式和範本化

attachedPropertyOwnerType attachedPropertyName
字串,指定附加屬性的擁有者、點 (.),然後指定附加屬性名稱。 attachedPropertyOwnerType 前面也可以加上 XML 命名空間前置詞。

欄位

UnsetValue

指定 WPF 屬性系統所使用的靜態值,而不是 null 來表示屬性存在,但沒有由屬性系統設定其值。

屬性

DefaultMetadata

取得相依性屬性的預設元數據。

GlobalIndex

取得可唯一識別相依性屬性的內部產生值。

Name

取得相依性屬性的名稱。

OwnerType

取得向屬性系統註冊相依性屬性的物件型別,或將本身加入為屬性的擁有者。

PropertyType

取得相依性屬性用於其值的型別。

ReadOnly

取得值,這個值表示這個 DependencyProperty 實例所識別的相依性屬性是否為只讀相依性屬性。

ValidateValueCallback

取得相依性屬性的值驗證回呼。

方法

AddOwner(Type)

將另一個類型新增為已經註冊之相依性屬性的擁有者。

AddOwner(Type, PropertyMetadata)

將另一個類型新增為已經註冊之相依性屬性的擁有者,為相依性屬性提供相依性屬性的相依性屬性元數據,因為它會存在於提供的擁有者類型上。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

傳回這個 DependencyProperty的哈希碼。

GetMetadata(DependencyObject)

傳回這個相依性屬性的元數據,因為它存在於指定的物件實例上。

GetMetadata(DependencyObjectType)

傳回這個相依性屬性的元數據,因為它存在於指定的型別上。

GetMetadata(Type)

傳回這個相依性屬性的元數據,因為它存在於指定的現有類型上。

GetType()

取得目前實例的 Type

(繼承來源 Object)
IsValidType(Object)

根據原始相依性屬性註冊中提供的屬性類型檢查,判斷這個相依性屬性的類型是否可接受指定的值。

IsValidValue(Object)

透過基本型別檢查,判斷是否接受屬性類型的提供值,如果它位於該類型的允許值範圍內,也可能接受該值。

MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
OverrideMetadata(Type, PropertyMetadata)

指定當這個相依性屬性存在於指定型別的實例上時,指定此相依性屬性的替代元數據,覆寫相依性屬性繼承自基底型別時所存在的元數據。

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

在指定型別的實例上提供唯讀相依性屬性的替代元數據,覆寫初始相依性屬性註冊中提供的元數據。 您必須傳遞只讀相依性屬性的 DependencyPropertyKey,以避免引發例外狀況。

Register(String, Type, Type)

使用指定的屬性名稱、屬性類型和擁有者類型註冊相依性屬性。

Register(String, Type, Type, PropertyMetadata)

使用指定的屬性名稱、屬性類型、擁有者類型和屬性元數據註冊相依性屬性。

Register(String, Type, Type, PropertyMetadata, ValidateValueCallback)

使用指定的屬性名稱、屬性類型、擁有者類型、屬性元數據,以及屬性的值驗證回呼,註冊相依性屬性。

RegisterAttached(String, Type, Type)

使用指定的屬性名稱、屬性類型和擁有者類型註冊附加屬性。

RegisterAttached(String, Type, Type, PropertyMetadata)

使用指定的屬性名稱、屬性類型、擁有者類型和屬性元數據註冊附加屬性。

RegisterAttached(String, Type, Type, PropertyMetadata, ValidateValueCallback)

向屬性的指定屬性類型、擁有者類型、屬性元數據和值驗證回呼註冊附加屬性。

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)

使用指定的屬性類型、擁有者類型和屬性元數據註冊唯讀附加屬性。

RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

使用指定的屬性類型、擁有者類型、屬性元數據和驗證回呼,註冊唯讀附加屬性。

RegisterReadOnly(String, Type, Type, PropertyMetadata)

使用指定的屬性類型、擁有者類型和屬性元數據註冊唯讀相依性屬性。

RegisterReadOnly(String, Type, Type, PropertyMetadata, ValidateValueCallback)

使用指定的屬性類型、擁有者類型、屬性元數據和驗證回呼,註冊只讀相依性屬性。

ToString()

傳回相依性屬性的字串表示。

適用於

另請參閱