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:Byte
e 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
, -Infinity
e 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
, -Infinity
e 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.
.NET Desktop feedback