Partager via


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 attribué.

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 attribué doit être considérée comme la propriété de contenu XAML, lorsqu’elle est interprétée par des 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.

L’exemple d’une classe dans le vocabulaire XAML par défaut Windows Runtime auquel ContentPropertyAttribute est appliqué est Panel. La propriété Children sur le panneau 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 Panel applique ContentPropertyAttribute en C# (la vraie définition est appliquée dans le code natif, à titre d’illustration uniquement) :

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

En utilisant Panel et 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 paramètre ci-dessus équivaut à ce 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 le instance StackPanel créé.

Un autre exemple important de ContentPropertyAttribute en action peut être vu dans la classe TextBlock . TextBlock utilise Inlines comme propriété de contenu, et la classe inline Run par défaut utilise Text comme propriété de contenu. En combinaison, les propriétés de contenu activent une syntaxe inline simple telle que <TextBlock>Hello</TextBlock>, même si le graphique d’objets 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

ContentPropertyAttribute()

Initialise une nouvelle instance de la classe ContentPropertyAttribute.

Champs

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 attribué.

S’applique à

Voir aussi