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
属性

注解

A 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 命名空间前缀,有关详细信息,请参阅 WPF XAML 的 XAML 命名空间和命名空间映射。)

ownerType.dependencyPropertyName
一个字符串,指定依赖属性的所有者类型,即点 (.) ,然后指定 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()

返回依赖属性的字符串表示形式。

适用于

另请参阅