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(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public sealed class ContentPropertyAttribute : Attribute
Public NotInheritable Class ContentPropertyAttribute
Inherits Attribute
Ereditarietà
ContentPropertyAttribute
Attributi

Commenti

Questo attributo viene usato per identificare che una proprietà specifica del tipo con attributi 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à di contenuto XAML è che fornisce una sintassi abbreviata XAML che può omettere il markup degli elementi della proprietà per tale proprietà. La rimozione degli elementi di proprietà facilita un modulo padre-figlio più naturale nel markup XAML. Per altre info sulle proprietà del contenuto XAML, vedi 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 definita da ContentPropertyAttribute e dal relativo valore Name . Le informazioni sulle proprietà del contenuto vengono ereditate da tutti i tipi derivati di Panel, ad esempio Grid e Canvas e StackPanel.

Questo codice approssima il modo in cui Panel applica ContentPropertyAttribute in C# (la definizione vera 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, potresti avere il codice XAML seguente:

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

Il codice precedente equivale a questo codice XAML più leggibile:

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

Quando viene analizzato da un parser XAML, il parser sa tramite ContentPropertyAttribute applicato al 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 Inline come proprietà del 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 <TextBlock>Hello</TextBlock>esempio , anche se l'oggetto grafico creato da questo codice XAML è più complesso ed è anche in grado di supportare più elementi inline espliciti, se necessario.

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