DependencyProperty.RegisterAttached 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在属性系统上注册附加属性。
重载
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
正在注册依赖属性的所有者类型。
返回
一个依赖属性标识符,应使用它来设置类中 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。
另请参阅
- Register(String, Type, Type, PropertyMetadata)
- RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)
适用于
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
依赖属性的属性元数据。 这可以包括默认值和其他特征。
返回
一个依赖属性标识符,应使用它来设置类中 public static readonly
字段的值。 稍后将此标识符用来引用依赖属性,从而实现以编程方式设置其值或获取元数据等操作。
注解
附加属性是由可扩展应用程序标记语言定义的属性概念, (XAML) 。 WPF 将附加属性作为依赖项属性实现。 由于 WPF 附加属性是依赖属性,因此它们可以应用元数据,常规属性系统可以使用这些元数据来实现报表布局特征等操作。 有关详细信息,请参阅附加属性概述。
有关依赖属性注册的详细信息,请参阅 DependencyProperty。
将 RegisterAttached 用于值继承依赖项属性
注册依赖属性RegisterAttachedRegister而不是支持属性值继承的一个特定方案。 即使类定义公开依赖属性的属性包装器访问器,也不应公开 Get* 和 Set* 静态方法以提供真正的附加属性支持访问器,也应注册值继承依赖属性 RegisterAttached 。 尽管属性值继承可能适用于非附加依赖属性,但未定义通过运行时树中某些元素边界的非附加属性的继承行为。 将属性注册为附加实际上会使附加属性成为属性系统的全局属性,并确保属性值继承在元素树中的所有边界上有效。 如果要在元数据中指定 Inherits,请始终使用 RegisterAttached 来注册属性。 有关详细信息,请参阅属性值继承。
另请参阅
- Register(String, Type, Type, PropertyMetadata)
- RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)
适用于
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
对回调的引用,除了典型的类型验证之外,该引用还应执行依赖属性值的任何自定义验证。
返回
一个依赖属性标识符,应使用它来设置类中 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 来注册属性。 有关详细信息,请参阅属性值继承。
另请参阅
- Register(String, Type, Type, PropertyMetadata)
- RegisterAttachedReadOnly(String, Type, Type, PropertyMetadata)