Gör så här: Registrera en bifogad egenskap
Det här exemplet visar hur du registrerar en bifogad egenskap och tillhandahåller offentliga accessorer så att du kan använda egenskapen i både XAML och kod. Anslutna egenskaper är ett syntaxkoncept som definieras av XAML. De flesta anslutna egenskaper för WPF-typer implementeras också som beroendeegenskaper. Du kan använda beroendeegenskaper för alla DependencyObject typer.
Exempel
I följande exempel visas hur du registrerar en bifogad egenskap som en beroendeegenskap med hjälp av metoden RegisterAttached. Providerklassen har möjlighet att tillhandahålla standardmetadata för egenskapen som är tillämplig när egenskapen används i en annan klass, såvida inte den klassen åsidosätter metadata. I det här exemplet är standardvärdet för egenskapen IsBubbleSource
inställt på false
.
Providerklassen för en bifogad egenskap (även om den inte är registrerad som en beroendeegenskap) måste tillhandahålla statiska get- och set-åtkomster som följer namngivningskonventionen Set
[AttachedPropertyName] och Get
[AttachedPropertyName]. Dessa åtkomstorer krävs så att den tillförordnade XAML-läsaren kan identifiera egenskapen som ett attribut i XAML och lösa lämpliga typer.
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
Se även
.NET Desktop feedback