如何:注册附加属性
更新:2007 年 11 月
此示例演示如何注册附加属性和提供公共访问器,以便可以在可扩展应用程序标记语言 (XAML) 和代码中使用该属性。附加属性是由可扩展应用程序标记语言 (XAML) 定义的语法概念。WPF 类型的大多数附加属性还作为依赖项属性来实现。您可以在任何 DependencyObject 类型上使用依赖项属性。
示例
下面的示例演示如何使用 RegisterAttached 方法将附加属性注册为依赖项属性。当在其他类上使用属性时,提供程序类可以选择为适用的属性提供默认元数据,除非该类将重写元数据。在此示例中,IsBubbleSource 属性的默认值设置为 false。
附加属性(即使未注册为依赖项属性)的提供程序类必须提供遵循 Set[附加属性名称] 和 Get[附加属性名称] 命名约定的静态 get 和 set 访问器。需要这些访问器目的是生效的 XAML 读取器可以在 XAML 中将属性 (property) 识别为属性 (attribute),并解析相应的类型。
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);
}