Langage

ContentPropertyAttribute Classe

Définition

Indique quelle propriété d’un type est la propriété de contenu XAML. Un processeur XAML utilise ces informations lors du traitement des éléments enfants XAML des représentations XAML du type attribut.

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
Héritage
ContentPropertyAttribute
Attributs

Remarques

Cet attribut est utilisé pour identifier qu’une propriété spécifique du type attribut doit être considérée comme la propriété de contenu XAML, lorsqu’elle est interprétée par les analyseurs XAML et d’autres codes d’infrastructure XAML. L’objectif d’une propriété de contenu XAML est qu’elle fournit un raccourci de syntaxe XAML qui peut omettre le balisage d’élément de propriété pour cette propriété. La suppression d’éléments de propriété facilite un formulaire parent-enfant plus naturel dans le balisage XAML. Pour plus d’informations sur les propriétés de contenu XAML, consultez la section « Propriétés de contenu XAML » du guide de syntaxe XAML.

Un exemple de classe dans le vocabulaire XAML par défaut Windows Runtime qui a appliqué ContentPropertyAttribute est Panel. La propriété Children on the Panel est identifiée comme la propriété de contenu XAML telle que définie par contentPropertyAttribute et sa valeur Name . Les informations de propriété de contenu sont héritées par tous les types dérivés de Panel, tels que Grid et Canvas et StackPanel.

Ce code se rapproche de la façon dont Le panneau applique ContentPropertyAttribute en C# (la définition true est appliquée dans le code natif, c’est pour illustration uniquement) :

[ContentProperty(Name = "Children")]
    public class Panel : FrameworkElement
    { ...}

À l’aide de Panel et de sa classe dérivée StackPanel comme illustration du concept de propriété de contenu XAML, vous pouvez avoir le code XAML suivant :

<StackPanel>
  <StackPanel.Children>
    <TextBlock>Testing content attribute</TextBlock>
  </StackPanel.Children>
</StackPanel>

Le code XAML ci-dessus est équivalent à ce code XAML plus lisible :

<StackPanel>
  <TextBlock>Testing content attribute</TextBlock>
</StackPanel>

Lorsqu’il est analysé par un analyseur XAML, l’analyseur sait par le biais du ContentPropertyAttribute appliqué au panneau que tout contenu trouvé dans le corps d’une balise StackPanel doit être utilisé pour définir la valeur children sur l’instance StackPanel créée.

Un autre exemple important de ContentPropertyAttribute en action peut être vu sur la classe TextBlock . TextBlock utilise inlines comme propriété de contenu, et la classe inline par défaut Run utilise Text comme propriété de contenu. En combinaison, les propriétés de contenu permettent une syntaxe inline simple, par <TextBlock>Hello</TextBlock>exemple, même si le graphique objet créé par ce code XAML est plus complexe et est également capable de prendre en charge plusieurs éléments inline explicites si vous le souhaitez.

Constructeurs

Nom Description
ContentPropertyAttribute()

Initialise une nouvelle instance de la classe ContentPropertyAttribute .

Champs

Nom Description
Name

Indique quelle propriété d’un type est la propriété de contenu XAML. Un processeur XAML utilise ces informations lors du traitement des éléments enfants XAML des représentations XAML du type attribut.

S’applique à

Voir aussi