如何:注册附加属性

更新: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);
}

请参见

概念

依赖项属性概述

自定义的依赖项属性

参考

DependencyProperty

其他资源

属性帮助主题

属性示例