Gewusst wie: Registrieren einer angefügten EigenschaftHow to: Register an Attached Property

In diesem Beispiel wird das Registrieren einer angefügten Eigenschaft und das Bereitstellen öffentlicher Accessoren beschrieben, damit Sie die Eigenschaft jeweils in Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) und in Code verwenden können.This example shows how to register an attached property and provide public accessors so that you can use the property in both Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) and code. Angefügte Eigenschaften sind ein von Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) definiertes Syntaxkonzept.Attached properties are a syntax concept defined by Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML). Die meisten angefügten Eigenschaften für WPFWPF-Typen werden auch als Abhängigkeitseigenschaften implementiert.Most attached properties for WPFWPF types are also implemented as dependency properties. Können Sie für ein beliebiges Abhängigkeitseigenschaften DependencyObject Typen.You can use dependency properties on any DependencyObject types.

BeispielExample

Im folgende Beispiel wird gezeigt, wie zum Registrieren einer angefügten Eigenschaft als eine Abhängigkeitseigenschaft mit dem RegisterAttached Methode.The following example shows how to register an attached property as a dependency property, by using the RegisterAttached method. Die Providerklasse hat die Möglichkeit zur Bereitstellung von Standardmetadaten für die Eigenschaft, die angewendet wird, wenn die Eigenschaft in einer anderen Klasse verwendet wird, es sei denn, diese Klasse überschreibt die Metadaten.The provider class has the option of providing default metadata for the property that is applicable when the property is used on another class, unless that class overrides the metadata. In diesem Beispiel wird der Standardwert der IsBubbleSource-Eigenschaft auf false festgelegt.In this example, the default value of the IsBubbleSource property is set to false.

Die Anbieterklasse für eine angefügte Eigenschaft (auch wenn diese nicht als Abhängigkeitseigenschaft registriert ist) muss statische get- und set-Accessoren bereitstellen, die die Benennungskonvention Set[NameDerAngefügtenEigenschaft] und Get[NameDerAngefügtenEigenschaft] befolgen.The provider class for an attached property (even if it is not registered as a dependency property) must provide static get and set accessors that follow the naming convention Set[AttachedPropertyName] and Get[AttachedPropertyName]. Diese Accessoren sind erforderlich, damit der agierende Leser von XAMLXAML die Eigenschaft als Attribut in XAMLXAML erkennen und die entsprechenden Typen auflösen kann.These accessors are required so that the acting XAMLXAML reader can recognize the property as an attribute in XAMLXAML and resolve the appropriate types.

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);
}
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

Siehe auchSee Also

DependencyProperty
Übersicht über AbhängigkeitseigenschaftenDependency Properties Overview
Benutzerdefinierte AbhängigkeitseigenschaftenCustom Dependency Properties
Themen zu VorgehensweisenHow-to Topics