ContentPropertyAttribute Classe

Definizione

Indica quale proprietà di un tipo è la proprietà di contenuto XAML. Un processore XAML usa queste informazioni durante l'elaborazione degli elementi figlio XAML delle rappresentazioni XAML del tipo con attributo.

public ref class ContentPropertyAttribute sealed : Attribute
/// [Windows.Foundation.Metadata.AttributeUsage(System.AttributeTargets.RuntimeClass)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
class ContentPropertyAttribute final : Attribute
/// [Windows.Foundation.Metadata.AttributeUsage(System.AttributeTargets.RuntimeClass)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.AttributeName("contentproperty")]
class ContentPropertyAttribute final : Attribute
[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
Public NotInheritable Class ContentPropertyAttribute
Inherits Attribute
Ereditarietà
ContentPropertyAttribute
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Commenti

C++/WinRT. Vedere l'attributo [contentproperty] .

Questo attributo viene usato per identificare che una proprietà specifica del tipo attributo deve essere considerata la proprietà del contenuto XAML, quando interpretata dai parser XAML e da altri codice del framework XAML. Lo scopo di una proprietà contenuto XAML è che fornisce una sintassi XAML a breve che può omettere il markup degli elementi della proprietà per tale proprietà. La rimozione degli elementi della proprietà facilita un modulo padre-figlio più naturale nel markup XAML. Per altre informazioni sulle proprietà del contenuto XAML, vedere la sezione "Proprietà contenuto XAML" della guida alla sintassi XAML.

Un esempio di classe nel vocabolario XAML predefinito Windows Runtime con ContentPropertyAttribute applicato è Panel. La proprietà Children on the Panel viene identificata come proprietà del contenuto XAML come definita dal contentPropertyAttribute e dal relativo valore Name . Le informazioni sulla proprietà del contenuto vengono ereditate da tutti i tipi derivati di Pannello, ad esempio Grid e Canvas e StackPanel.

Questo codice approssima il modo in cui il pannello applica ContentPropertyAttribute in C# (la definizione true viene applicata nel codice nativo, questa è solo per l'illustrazione):

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

Usando Panel e la relativa classe derivata StackPanel come illustrazione del concetto di proprietà del contenuto XAML, potrebbe essere presente il codice XAML seguente:

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

L'oggetto precedente equivale a questo XAML più leggibile:

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

Quando viene analizzato da un parser XAML, il parser sa tramite ContentPropertyAttribute applicato nel pannello che qualsiasi contenuto trovato all'interno del corpo di un tag StackPanel deve essere usato per impostare il valore di Children nell'istanza di StackPanel creata.

Un altro esempio importante di ContentPropertyAttribute in azione può essere visualizzato nella classe TextBlock . TextBlock usa Inlines come proprietà contenuto e la classe inline predefinita Run usa Text come proprietà del contenuto. In combinazione, le proprietà del contenuto abilitano una semplice sintassi inline, ad esempio <TextBlock>Hello</TextBlock>, anche se il grafico a oggetti creato da questo XAML è più complesso ed è anche in grado di supportare più elementi inline espliciti se desiderato.

Costruttori

ContentPropertyAttribute()

Inizializza una nuova istanza della classe ContentPropertyAttribute .

Campi

Name

Indica quale proprietà di un tipo è la proprietà di contenuto XAML. Un processore XAML usa queste informazioni durante l'elaborazione degli elementi figlio XAML delle rappresentazioni XAML del tipo con attributo.

Si applica a

Vedi anche