Condividi tramite


Tipi predefiniti per primitive di linguaggio XAML comuni

XAML 2009 introduce il supporto a livello di linguaggio XAML per diversi tipi di dati che vengono spesso usati primitive in Common Language Runtime (CLR) e in altri linguaggi di programmazione. XAML 2009 aggiunge il supporto per queste primitive: x:Object, x:Boolean, x:Char, x:String, x:Decimal, x:Single, x:Double, x:Int16, x:Int32, x:Int64, x:TimeSpan, x:Uri, x:Bytee x:Array

Tecniche precedenti per le primitive del linguaggio nel markup XAML

In XAML per le versioni precedenti di WPF è possibile fare riferimento alle primitive del linguaggio CLR eseguendo il mapping dell'assembly e dello spazio dei nomi che conteneva una classe di definizione primitiva CLR per .NET Framework. La maggior parte di queste si trova nell'assembly mscorlib e nello spazio dei nomi System. Ad esempio, per usare Int32, è possibile dichiarare il mapping seguente (con un esempio di utilizzo illustrato successivamente):

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <Application.Resources>
    <sys:Int32 x:Key="intMeaning">42</sys:Int32>
  </Application.Resources>
</Application>

Primitive del linguaggio XAML 2009

Per convenzione, vengono visualizzate le primitive del linguaggio per XAML e tutti gli altri elementi del linguaggio XAML, incluso il prefisso x:. Questo è il modo in cui gli elementi del linguaggio XAML vengono in genere usati nel markup reale. Questa convenzione è seguita nella documentazione concettuale per XAML in WPF e anche nella specifica XAML.

x:Object

Per il backup di CLR, la primitiva x:Object corrisponde a Object.

Questa primitiva non viene in genere usata nel markup dell'applicazione, ma può essere utile per alcuni scenari, ad esempio il controllo dell'assegnabilità in un sistema di tipi XAML.

x:Boolean

Per il backup di CLR, la primitiva x:Boolean corrisponde a Boolean.

XAML analizza i valori per x:Boolean senza distinzione tra maiuscole e minuscole. Si noti che x:Bool non è un'alternativa accettata. Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.17 e 7.4.11.

x:Char

Per il backup di CLR, la primitiva x:Char corrisponde a Char.

I tipi stringa e char interagiscono con la codifica complessiva del file a livello XML. Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.7 e 7.4.1.

x:String

Per il backup di CLR, la primitiva x:String corrisponde a String.

I tipi stringa e char interagiscono con la codifica complessiva del file a livello XML. Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.6.

x:Decimal

Per il backup di CLR, la primitiva x:Decimal corrisponde a Decimal.

L'analisi XAML viene eseguita intrinsecamente nelle impostazioni cultura en-US. In en-US impostazioni cultura, il separatore corretto per i componenti di un separatore decimale è sempre un punto (.) indipendentemente dalle impostazioni cultura dell'ambiente di sviluppo o dalla destinazione client finale in cui il codice XAML viene caricato in fase di esecuzione.

Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.14 e 7.4.8.

x:Single

Per il backup di CLR, la primitiva x:Single corrisponde a Single.

Oltre ai valori numerici, la sintassi del testo per x:Single consente anche i token Infinity, -Infinitye NaN. Questi token vengono considerati come distinzione tra maiuscole e minuscole.

x:Single può supportare valori in formato notazione scientifica, se il primo carattere nella sintassi del testo è e o E.

Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.8 e 7.4.2.

x:Double

Per il backup di CLR, la primitiva x:Double corrisponde a Double.

Oltre ai valori numerici, la sintassi di testo per x:Double consente i token Infinity, -Infinitye NaN. Questi token vengono considerati come distinzione tra maiuscole e minuscole.

x:Double può supportare valori in forma di notazione scientifica. Usare il carattere e o E per introdurre la parte esponente.

Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.9 e 7.4.3.

x:Int16

Per il backup CLR, la primitiva x:Int16 corrisponde a Int16 e x:Int16 viene considerata come firmata. In XAML l'assenza di un segno più (+) è implicita come valore con segno positivo.

Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.11 e 7.4.5.

x:Int32

Per il backup di CLR, la primitiva x:Int32 corrisponde a Int32. x:Int32 viene considerato come firmato. In XAML l'assenza di un segno più (+) è implicita come valore con segno positivo.

Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.12 e 7.4.6.

x:Int64

Per il backup di CLR, la primitiva x:Int64 corrisponde a Int64. x:Int64 viene considerato come firmato. In XAML l'assenza di un segno più (+) è implicita come valore con segno positivo.

Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.13 e 7.4.7.

x:TimeSpan

Per il backup di CLR, la primitiva x:TimeSpan corrisponde a TimeSpan.

L'analisi XAML per il formato di data e ora viene eseguita intrinsecamente nelle impostazioni cultura en-US.

Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.16 e 7.4.10.

x:Uri

Per il backup di CLR, la primitiva x:Uri corrisponde a Uri.

Il controllo dei protocolli non fa parte della definizione XAML per x:Uri.

Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.15 e 7.4.9.

x:Byte

Per il backup di CLR, la primitiva x:Byte corrisponde a Byte. Un Byte / x:Byte viene considerato non firmato.

Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.10 e 7.4.4.

x:Array

Per il backup di CLR, la primitiva x:Array corrisponde a Array.

Puoi definire una matrice in XAML 2006 usando una sintassi di estensione di markup; Tuttavia, la sintassi XAML 2009 è una primitiva definita dal linguaggio che non richiede l'accesso a un'estensione di markup. Per altre informazioni sul supporto di XAML 2006, vedere x:Array Markup Extension.

Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.18.

Supporto WPF

In WPF puoi usare le funzionalità XAML 2009, ma solo per XAML che non è compilato con markup. XAML compilato con markup per WPF e il formato BAML di XAML attualmente non supportano le parole chiave e le funzionalità XAML 2009.

Uno scenario in cui è possibile usare le funzionalità XAML 2009 insieme a WPF è se si crea XAML libero e si carica il codice XAML in un runtime WPF e in un oggetto grafico con XamlReader.Load. Il System.Windows.Markup.XamlReader WPF e il relativo Load possono elaborare parole chiave e funzionalità del linguaggio XAML 2009 in una rappresentazione valida dell'oggetto grafico.