DependencyProperty.RegisterAttached 方法

定义

在属性系统上注册附加属性。

重载

RegisterAttached(String, Type, Type)

使用指定的属性名称、属性类型和所有者类型注册附加属性。

RegisterAttached(String, Type, Type, PropertyMetadata)

使用指定的属性名、属性类型、所有者类型和属性元数据注册附加的属性。

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

使用指定的属性类型、所有者类型、属性元数据和属性的值验证回调来注册附加属性。

RegisterAttached(String, Type, Type)

使用指定的属性名称、属性类型和所有者类型注册附加属性。

public:
 static System::Windows::DependencyProperty ^ RegisterAttached(System::String ^ name, Type ^ propertyType, Type ^ ownerType);
public static System.Windows.DependencyProperty RegisterAttached (string name, Type propertyType, Type ownerType);
static member RegisterAttached : string * Type * Type -> System.Windows.DependencyProperty
Public Shared Function RegisterAttached (name As String, propertyType As Type, ownerType As Type) As DependencyProperty

参数

name
String

要注册的依赖属性的名称。

propertyType
Type

属性的类型。

ownerType
Type

正在注册依赖属性的所有者类型。

返回

DependencyProperty

一个依赖属性标识符,应使用它来设置类中 public static readonly 字段的值。 稍后将此标识符用来引用依赖属性,从而实现以编程方式设置其值或获取元数据等操作。

示例

以下示例使用此 RegisterAttached 签名在抽象类上注册附加属性。

public static readonly DependencyProperty IsBubbleSourceProperty = DependencyProperty.RegisterAttached(
  "IsBubbleSource",
  typeof(Boolean),
  typeof(AquariumObject2)
);
public static void SetIsBubbleSource(UIElement element, Boolean value)
{
    element.SetValue(IsBubbleSourceProperty, value);
}
public static Boolean GetIsBubbleSource(UIElement element)
{
    return (Boolean)element.GetValue(IsBubbleSourceProperty);
}
Public Shared ReadOnly IsBubbleSourceProperty As DependencyProperty = DependencyProperty.RegisterAttached("IsBubbleSource", GetType(Boolean), GetType(AquariumObject2))
Public Shared Sub SetIsBubbleSource(ByVal element As UIElement, ByVal value As Boolean)
    element.SetValue(IsBubbleSourceProperty, value)
End Sub
Public Shared Function GetIsBubbleSource(ByVal element As UIElement) As Boolean
    Return CType(element.GetValue(IsBubbleSourceProperty), Boolean)
End Function

注解

附加属性是由可扩展应用程序标记语言定义的属性概念, (XAML) 。 WPF 将附加属性作为依赖项属性实现。 由于 WPF 附加属性是依赖属性,因此它们可以应用元数据,常规属性系统可以使用这些元数据来实现报表布局特征等操作。 有关详细信息,请参阅附加属性概述

有关依赖属性注册的详细信息,请参阅 DependencyProperty

另请参阅

适用于

RegisterAttached(String, Type, Type, PropertyMetadata)

使用指定的属性名、属性类型、所有者类型和属性元数据注册附加的属性。

public:
 static System::Windows::DependencyProperty ^ RegisterAttached(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ defaultMetadata);
public static System.Windows.DependencyProperty RegisterAttached (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata defaultMetadata);
static member RegisterAttached : string * Type * Type * System.Windows.PropertyMetadata -> System.Windows.DependencyProperty
Public Shared Function RegisterAttached (name As String, propertyType As Type, ownerType As Type, defaultMetadata As PropertyMetadata) As DependencyProperty

参数

name
String

要注册的依赖属性的名称。

propertyType
Type

属性的类型。

ownerType
Type

正在注册依赖属性的所有者类型。

defaultMetadata
PropertyMetadata

依赖属性的属性元数据。 这可以包括默认值和其他特征。

返回

DependencyProperty

一个依赖属性标识符,应使用它来设置类中 public static readonly 字段的值。 稍后将此标识符用来引用依赖属性,从而实现以编程方式设置其值或获取元数据等操作。

注解

附加属性是由可扩展应用程序标记语言定义的属性概念, (XAML) 。 WPF 将附加属性作为依赖项属性实现。 由于 WPF 附加属性是依赖属性,因此它们可以应用元数据,常规属性系统可以使用这些元数据来实现报表布局特征等操作。 有关详细信息,请参阅附加属性概述

有关依赖属性注册的详细信息,请参阅 DependencyProperty

将 RegisterAttached 用于值继承依赖项属性

注册依赖属性RegisterAttachedRegister而不是支持属性值继承的一个特定方案。 即使类定义公开依赖属性的属性包装器访问器,也不应公开 Get* 和 Set* 静态方法以提供真正的附加属性支持访问器,也应注册值继承依赖属性 RegisterAttached 。 尽管属性值继承可能适用于非附加依赖属性,但未定义通过运行时树中某些元素边界的非附加属性的继承行为。 将属性注册为附加实际上会使附加属性成为属性系统的全局属性,并确保属性值继承在元素树中的所有边界上有效。 如果要在元数据中指定 Inherits,请始终使用 RegisterAttached 来注册属性。 有关详细信息,请参阅属性值继承

另请参阅

适用于

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

使用指定的属性类型、所有者类型、属性元数据和属性的值验证回调来注册附加属性。

public:
 static System::Windows::DependencyProperty ^ RegisterAttached(System::String ^ name, Type ^ propertyType, Type ^ ownerType, System::Windows::PropertyMetadata ^ defaultMetadata, System::Windows::ValidateValueCallback ^ validateValueCallback);
public static System.Windows.DependencyProperty RegisterAttached (string name, Type propertyType, Type ownerType, System.Windows.PropertyMetadata defaultMetadata, System.Windows.ValidateValueCallback validateValueCallback);
static member RegisterAttached : string * Type * Type * System.Windows.PropertyMetadata * System.Windows.ValidateValueCallback -> System.Windows.DependencyProperty
Public Shared Function RegisterAttached (name As String, propertyType As Type, ownerType As Type, defaultMetadata As PropertyMetadata, validateValueCallback As ValidateValueCallback) As DependencyProperty

参数

name
String

要注册的依赖属性的名称。

propertyType
Type

属性的类型。

ownerType
Type

正在注册依赖属性的所有者类型。

defaultMetadata
PropertyMetadata

依赖属性的属性元数据。 这可以包括默认值和其他特征。

validateValueCallback
ValidateValueCallback

对回调的引用,除了典型的类型验证之外,该引用还应执行依赖属性值的任何自定义验证。

返回

DependencyProperty

一个依赖属性标识符,应使用它来设置类中 public static readonly 字段的值。 稍后将此标识符用来引用依赖属性,从而实现以编程方式设置其值或获取元数据等操作。

示例

以下示例使用此 RegisterAttached 签名在抽象类上注册附加属性。 此附加属性是枚举类型属性,注册会添加验证回调,以验证所提供的值是否为枚举值。

public static readonly DependencyProperty IsBubbleSourceProperty = DependencyProperty.RegisterAttached(
  "IsBubbleSource",
  typeof(Boolean),
  typeof(AquariumObject2)
);
public static void SetIsBubbleSource(UIElement element, Boolean value)
{
    element.SetValue(IsBubbleSourceProperty, value);
}
public static Boolean GetIsBubbleSource(UIElement element)
{
    return (Boolean)element.GetValue(IsBubbleSourceProperty);
}
Public Shared ReadOnly IsBubbleSourceProperty As DependencyProperty = DependencyProperty.RegisterAttached("IsBubbleSource", GetType(Boolean), GetType(AquariumObject2))
Public Shared Sub SetIsBubbleSource(ByVal element As UIElement, ByVal value As Boolean)
    element.SetValue(IsBubbleSourceProperty, value)
End Sub
Public Shared Function GetIsBubbleSource(ByVal element As UIElement) As Boolean
    Return CType(element.GetValue(IsBubbleSourceProperty), Boolean)
End Function

注解

附加属性是由可扩展应用程序标记语言定义的属性概念, (XAML) 。 WPF 将附加属性作为依赖项属性实现。 由于 WPF 附加属性是依赖属性,因此它们可以应用元数据,常规属性系统可以使用这些元数据来实现报表布局特征等操作。 有关详细信息,请参阅附加属性概述

有关依赖属性注册的详细信息,请参阅 DependencyProperty

将 RegisterAttached 用于值继承依赖项属性

注册依赖属性RegisterAttachedRegister而不是支持属性值继承的一个特定方案。 即使类定义公开依赖属性的属性包装器访问器,也不应公开 Get* 和 Set* 静态方法以提供真正的附加属性支持访问器,也应注册值继承依赖属性 RegisterAttached 。 尽管属性值继承可能适用于非附加依赖属性,但未定义通过运行时树中某些元素边界的非附加属性的继承行为。 将属性注册为附加实际上会使附加属性成为属性系统的全局属性,并确保属性值继承在元素树中的所有边界上有效。 如果要在元数据中指定 Inherits,请始终使用 RegisterAttached 来注册属性。 有关详细信息,请参阅属性值继承

另请参阅

适用于