ContentPropertyAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Zeigt an, welche Eigenschaft eines Typs die XAML-Inhaltseigenschaft ist. Ein XAML-Prozessor verwendet diese Informationen bei der Verarbeitung von untergeordneten XAML-Elementen von XAML-Darstellungen des attributierten Typs.
public ref class ContentPropertyAttribute sealed : Attribute
[Windows.Foundation.Metadata.AttributeUsage(System.AttributeTargets.RuntimeClass)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public sealed class ContentPropertyAttribute : Attribute
Public NotInheritable Class ContentPropertyAttribute
Inherits Attribute
- Vererbung
-
ContentPropertyAttribute
- Attribute
Hinweise
Dieses Attribut wird verwendet, um zu identifizieren, dass eine bestimmte Eigenschaft des attributierten Typs als XAML-Inhaltseigenschaft betrachtet werden soll, wenn sie von XAML-Parsern und anderen XAML-Frameworkcode interpretiert wird. Der Zweck einer XAML-Inhaltseigenschaft besteht darin, dass sie eine XAML-Syntaxkurz bereitstellt, die das Eigenschaftenelementmarkup für diese Eigenschaft weglassen kann. Das Entfernen von Eigenschaftselementen ermöglicht eine natürlichere Form über- und untergeordnete Elemente im XAML-Markup. Weitere Informationen zu XAML-Inhaltseigenschaften finden Sie im Abschnitt "XAML-Inhaltseigenschaften" des XAML-Syntaxleitfadens.
Ein Beispiel für eine Klasse im Standard-Windows-Runtime XAML-Vokabular, auf das ContentPropertyAttribute angewendet wurde, ist Panel. Die Children-Eigenschaft im Panel wird als XAML-Inhaltseigenschaft identifiziert, wie durch das ContentPropertyAttribute und dessen Name-Wert definiert. Die Inhaltseigenschafteninformationen werden von allen abgeleiteten Panel-Typen wie Grid und Canvas und StackPanel geerbt.
Dieser Code nähert an, wie Panel ContentPropertyAttribute in C# anwendet (die true-Definition wird im systemeigenen Code angewendet, dies dient nur zur Veranschaulichung):
[ContentProperty(Name = "Children")]
public class Panel : FrameworkElement
{ ...}
Wenn Panel und die abgeleitete Klasse StackPanel als Abbildung des XAML-Inhaltseigenschaftenkonzepts verwendet werden, können Sie den folgenden XAML-Code verwenden:
<StackPanel>
<StackPanel.Children>
<TextBlock>Testing content attribute</TextBlock>
</StackPanel.Children>
</StackPanel>
Das obige äquivalent zu diesem besser lesbaren XAML-Code:
<StackPanel>
<TextBlock>Testing content attribute</TextBlock>
</StackPanel>
Bei der Analyse durch einen XAML-Parser weiß der Parser über das contentPropertyAttribute, das auf Panel angewendet wird, dass alle Inhalte, die im Textkörper eines StackPanel-Tags gefunden werden, verwendet werden sollen, um den Wert von Children für die erstellte StackPanel-instance festzulegen.
Ein weiteres prominentes Beispiel für ContentPropertyAttribute in Aktion ist in der TextBlock-Klasse zu sehen.
TextBlock verwendet Inlines als Inhaltseigenschaft, und die Standard-Inlineklasse Run verwendet Text als Inhaltseigenschaft. In Kombination ermöglichen die Inhaltseigenschaften eine einfache Inlinesyntax wie <TextBlock>Hello</TextBlock>
, auch wenn der von diesem XAML erstellte Objektgraph komplexer ist und bei Bedarf mehrere explizite Inlineelemente unterstützen kann.
Konstruktoren
ContentPropertyAttribute() |
Initialisiert eine neue instance der ContentPropertyAttribute-Klasse. |
Felder
Name |
Zeigt an, welche Eigenschaft eines Typs die XAML-Inhaltseigenschaft ist. Ein XAML-Prozessor verwendet diese Informationen bei der Verarbeitung von untergeordneten XAML-Elementen von XAML-Darstellungen des attributierten Typs. |