DependencyProperty.OverrideMetadata 方法

定义

当此依赖属性位于指定类型的实例上时为其提供替换元数据(而不是在最初注册依赖属性时提供的元数据)。

重载

OverrideMetadata(Type, PropertyMetadata)

当此依赖属性位于指定类型的实例上时为其指定替换元数据,以在该依赖属性继承自基类型时重写该属性已存在的元数据。

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

当只读依赖属性位于指定类型的实例上时为其提供替换元数据,以便重写在最初注册依赖属性时提供的元数据。 你必须为只读依赖属性传递 DependencyPropertyKey,以免引发异常。

OverrideMetadata(Type, PropertyMetadata)

当此依赖属性位于指定类型的实例上时为其指定替换元数据,以在该依赖属性继承自基类型时重写该属性已存在的元数据。

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata);
public void OverrideMetadata (Type forType, System.Windows.PropertyMetadata typeMetadata);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata)

参数

forType
Type

一种类型,在该类型上继承该依赖属性并将应用所提供的替换元数据。

typeMetadata
PropertyMetadata

一种元数据,它将应用于重写类型上的依赖属性。

例外

尝试重写只读依赖属性的元数据(不能使用此签名完成该操作)。

已为依赖属性建立元数据,因为它存在于所提供的类型上。

注解

在属性系统使用依赖属性之前,应重写依赖属性元数据。 这相当于使用注册依赖属性的 类创建特定实例的时间。 OverrideMetadata应仅在作为此方法的参数提供自己的forType类型的静态构造函数中或通过类似的实例化来执行对 的调用。 在所有者类型实例存在后尝试更改元数据不会引发异常,但会导致属性系统中的行为不一致。

使用此方法建立特定派生类替代的元数据后,后续尝试重写同一派生类上的元数据将引发异常。

提供的元数据与依赖属性的属性元数据合并,因为它存在于基所有者上。 原始基本元数据中指定的任何特征都将保留:只有那些在新元数据中专门更改的特征才会覆盖基本元数据的特征。 如果在新元数据中指定,将替换某些特征,例如 DefaultValue 。 其他项(如 PropertyChangedCallback)是组合在一起的。 归根结底,合并行为取决于用于替代的属性元数据类型,因此此处介绍的行为适用于 WPF 依赖属性使用的现有属性元数据类。 有关详细信息,请参阅 依赖属性元数据框架属性元数据

适用于

OverrideMetadata(Type, PropertyMetadata, DependencyPropertyKey)

当只读依赖属性位于指定类型的实例上时为其提供替换元数据,以便重写在最初注册依赖属性时提供的元数据。 你必须为只读依赖属性传递 DependencyPropertyKey,以免引发异常。

public:
 void OverrideMetadata(Type ^ forType, System::Windows::PropertyMetadata ^ typeMetadata, System::Windows::DependencyPropertyKey ^ key);
public void OverrideMetadata (Type forType, System.Windows.PropertyMetadata typeMetadata, System.Windows.DependencyPropertyKey key);
member this.OverrideMetadata : Type * System.Windows.PropertyMetadata * System.Windows.DependencyPropertyKey -> unit
Public Sub OverrideMetadata (forType As Type, typeMetadata As PropertyMetadata, key As DependencyPropertyKey)

参数

forType
Type

一种类型,在该类型上继承该依赖属性并将应用所提供的替换元数据。

typeMetadata
PropertyMetadata

一种元数据,它将应用于重写类型上的依赖属性。

key
DependencyPropertyKey

只读依赖属性的访问键。

注解

此签名为只读依赖属性标识符 (DependencyPropertyKey) 方法提供基础实现。 如果重写读写依赖属性的元数据,请使用 OverrideMetadata(Type, PropertyMetadata)

在属性系统使用依赖属性之前,应重写依赖属性元数据。 这相当于为注册依赖属性的类创建特定对象的时间。 OverrideMetadata应仅在作为此方法的参数提供自己的forType类型的静态构造函数中或通过类似的实例化来执行对 的调用。 在所有者类型实例存在后尝试更改元数据不会引发异常,但会导致属性系统中的行为不一致。

使用此方法建立特定派生类替代的元数据后,后续尝试重写同一派生类上的元数据将引发异常。

提供的元数据与依赖属性的属性元数据合并,因为它存在于基所有者上。 原始基本元数据中指定的任何特征都将保留:只有那些在新元数据中专门更改的特征才会覆盖基本元数据的特征。 如果在新元数据中指定,将替换某些特征,例如 DefaultValue 。 其他项(如 PropertyChangedCallback)是组合在一起的。 合并行为取决于用于替代的属性元数据类型。 有关详细信息,请参阅 依赖属性元数据框架属性元数据

适用于