Share via


Estensione del markup x:Static

Aggiornamento: novembre 2007

Fa riferimento a qualsiasi entità di codice per valore statica definita in modo conforme a Common Language Specification (CLS). La proprietà a cui viene fatto riferimento viene valutata prima del caricamento della parte rimanente della pagina XAML e può essere utilizzata per fornire il valore di una proprietà in XAML.

Utilizzo della sintassi XAML per gli attributi

<object property="{x:Static prefix:typeName.staticMemberName}" .../>

Utilizzo della sintassi XAML per gli elementi oggetto

<object>
  <object.property>
    <x:Static Member="prefix:typeName.staticMemberName" .../>
  </object.property>
</object>

Valori XAML

prefix

Facoltativo. Prefisso che esegue il mapping di uno spazio dei nomi xmlns non predefinito. Vedere la sezione Osservazioni.

typeName

Obbligatorio. Tipo che definisce il membro statico desiderato.

staticMemberName

Obbligatorio. Nome del membro del valore statico desiderato (una costante, una proprietà statica, un campo o un valore di enumerazione).

Note

L'entità di codice a cui viene fatto riferimento deve essere uno degli elementi seguenti:

  • costante

  • proprietà statica

  • campo

  • valore di enumerazione

Se si specifica qualsiasi altra entità di codice, ad esempio una proprietà non statica, viene restituito un errore in fase di compilazione.

È possibile stabilire riferimenti x:Static a proprietà o campi statici non inclusi nello spazio dei nomi xmlns predefinito, ma questa operazione richiede un mapping di prefisso. Lo spazio dei nomi xmlns predefinito può essere definito per qualsiasi elemento XAML come un attributo. In genere, viene definito sull'elemento radice affinché lo spazio dei nomi xmlns venga applicato a tutti gli elementi inferiori alla radice. Di solito lo spazio dei nomi XML predefinito utilizzato per la programmazione Windows Presentation Foundation (WPF) è lo spazio dei nomi WPF. È necessario eseguire il mapping di un prefisso se si verifica una delle seguenti condizioni:

  • Si fa riferimento a un tipo che esiste in Microsoft .NET Framework, ma non appartiene allo spazio dei nomi di WPF. Si tratta di uno scenario abbastanza comune per l'utilizzo di x:Static. È ad esempio possibile utilizzare un riferimento x:Static con un mapping di prefisso allo spazio dei nomi CLR System per fare riferimento alle proprietà statiche della classe Environment.

  • Si fa riferimento a un tipo da un assembly personalizzato.

  • Si fa riferimento a un tipo presente in un assembly WPF, ma questo tipo è incluso in uno spazio dei nomi CLR non mappato allo scopo di includerlo nello spazio dei nomi WPF. Il mapping viene eseguito tramite le definizioni di tale assembly. Gli spazi dei nomi CLR non mappati sono tipici per le definizioni di classi WPF in spazi dei nomi CLR in genere non destinati a XAML, ad esempio System.Windows.Threading.

Per ulteriori informazioni sui prefissi e sugli spazi dei nomi XML, vedere Spazi dei nomi XAML e mapping dello spazio dei nomi.

È possibile utilizzare i riferimenti x:Static che non sono direttamente il tipo di valore di una proprietà, ma possono restituire tale tipo. È ad esempio possibile utilizzare un riferimento x:Static per ottenere un valore da un'enumerazione o da una proprietà statica, come i vari colori e pennelli definiti da SystemColors. I riferimenti x:Static possono potenzialmente essere utilizzati per impostare qualsiasi proprietà nella sintassi XAML, anche quelle eventualmente basate su una proprietà con un tipo di riferimento, poiché la gestione effettiva del valore x:Static dopo la valutazione può variare, a seconda dei comportamenti del convertitore di tipi della proprietà in cui viene applicato il valore statico.

La sintassi per gli attributi è quella più comunemente utilizzata con questa estensione di markup. Il token di stringa fornito dopo la stringa dell'identificatore x:Static viene assegnato come valore Member della classe dell'estensione StaticExtension sottostante.

I riferimenti x:Static possono essere utilizzati nella sintassi degli elementi oggetto. In questo caso, è necessario specificare il valore della proprietà Member.

I riferimenti x:Static possono inoltre essere utilizzati nell'utilizzo dettagliato degli attributi per cui la proprietà Member viene specificata come coppia proprietà=valore:

<object property="{x:Static Member=prefix:typeName.staticMemberName}" .../>

L'utilizzo dettagliato può essere utile per estensioni con più proprietà da impostare o nei casi in cui alcune proprietà siano facoltative. Poiché i riferimenti x:Static presentano una sola proprietà da impostare, obbligatoria, l'utilizzo dettagliato non è tipico.

Nell'implementazione del processore XAML di WPF, la gestione di questa estensione di markup viene definita dalla classe StaticExtension.

x:Static è un'estensione di markup. Le estensioni di markup vengono in genere implementate quando è necessario utilizzare i caratteri di escape per i valori degli attributi per non utilizzarli come valori letterali o nomi dei gestori e tale requisito è più globale del semplice utilizzo di alcuni convertitori di tipi su determinati tipi o proprietà. Tutte le estensioni di markup di XAML utilizzano i caratteri { e } nella relativa sintassi degli attributi. Grazie a questa convenzione il processore XAML è in grado di rilevare la necessità che l'attributo venga elaborato da un'estensione di markup. Per informazioni dettagliate sulle estensioni di markup, vedere Estensioni di markup e XAML.

Vedere anche

Concetti

Applicazione di stili e modelli

Cenni preliminari su XAML

Estensioni di markup e XAML

Riferimenti

Estensione del markup x:Type