Lire en anglais

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

[Windows.Foundation.Metadata.AttributeUsage(System.AttributeTargets.RuntimeClass)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public sealed class ContentPropertyAttribute : Attribute
[Windows.Foundation.Metadata.AttributeUsage(System.AttributeTargets.RuntimeClass)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.AttributeName("contentproperty")]
public sealed class ContentPropertyAttribute : Attribute
Héritage
ContentPropertyAttribute
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Remarques

C++/WinRT. Consultez l’attribut [contentproperty].

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 des analyseurs XAML et d’autres code d’infrastructure XAML. L’objectif d’une propriété de contenu XAML est qu’elle fournit une syntaxe XAML abrégée 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.

Panel est un exemple de classe dans le vocabulaire XAML par défaut Windows Runtime auquel ContentPropertyAttribute est appliqué. 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 véritable 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 code 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 de l’attribut ContentPropertyAttribute appliqué sur Panel 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 est visible sur 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 peut également 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 à

Produit Versions
WinRT Build 10240, Build 10586, Build 14383, Build 15063, Build 16299, Build 17134, Build 17763, Build 18362, Build 19041, Build 20348, Build 22000, Build 22621, Build 26100

Voir aussi