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