如何:注册附加属性
此示例演示如何注册附加属性和提供公共访问器,以便可以在Extensible Application Markup Language (XAML) 和代码中使用该属性。 附加属性是由Extensible Application Markup Language (XAML) 定义的语法概念。 WPF 类型的大多数附加属性还作为依赖项属性来实现。 可以对任何 DependencyObject 类型使用依赖项属性。
示例
下面的示例演示如何使用 RegisterAttached 方法将附加属性注册为依赖项属性。 当在其他类上使用属性时,提供程序类可以选择为适用的属性提供默认元数据,除非该类将重写元数据。 在此示例中,IsBubbleSource 属性的默认值设置为 false。
附加属性(即使未注册为依赖项属性)的提供程序类必须提供遵循 Set[附加属性名称] 和 Get[附加属性名称] 命名约定的静态 get 和 set 访问器。需要这些访问器目的是生效的 XAML 读取器可以在 XAML 中将属性识别为特性,并解析相应的类型。
Public Shared ReadOnly IsBubbleSourceProperty As DependencyProperty = DependencyProperty.RegisterAttached("IsBubbleSource", GetType(Boolean), GetType(AquariumObject), New FrameworkPropertyMetadata(False, FrameworkPropertyMetadataOptions.AffectsRender))
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
public static readonly DependencyProperty IsBubbleSourceProperty = DependencyProperty.RegisterAttached(
"IsBubbleSource",
typeof(Boolean),
typeof(AquariumObject),
new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)
);
public static void SetIsBubbleSource(UIElement element, Boolean value)
{
element.SetValue(IsBubbleSourceProperty, value);
}
public static Boolean GetIsBubbleSource(UIElement element)
{
return (Boolean)element.GetValue(IsBubbleSourceProperty);
}