Tipi predefiniti per primitive di linguaggio XAML comuni
XAML 2009 introduce il supporto del livello di linguaggio XAML per diversi tipi di dati che sono primitive di uso frequente 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 di linguaggio nel markup XAML
In XAML per le versioni di WPF precedenti era possibile fare riferimento alle primitive del linguaggio CLR eseguendo il mapping dell'assembly e dello spazio dei nomi che contenevano una classe di definizione della primitiva CLR per .NET Framework. La maggior parte di queste si trovano nell'assembly mscorlib e nello spazio dei nomi System . Ad esempio, per usare Int32era possibile dichiarare il mapping seguente (con un esempio di utilizzo come illustrato di seguito):
<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, le primitive di linguaggio per XAML e tutti gli altri elementi del linguaggio XAML vengono mostrati con il prefisso x:
. Questo è il modo in cui gli elementi del linguaggio XAML vengono in genere usati nel markup reale. Questa convenzione viene seguita nella documentazione concettuale per XAML in WPF e anche nelle specifiche XAML.
x:Object
Per il supporto CLR, la primitiva x:Object
corrisponde a Object.
Questa primitiva in genere non viene usata nel markup dell'applicazione, ma può essere utile per alcuni scenari, ad esempio la verifica dell'assegnabilità in un sistema di tipi XAML.
x:Boolean
Per il supporto CLR, la primitiva x:Boolean
corrisponde a Boolean.
XAML analizza i valori per x:Boolean
senza fare distinzione tra maiuscole e minuscole. Tenere presente che x:Bool
non rappresenta un'alternativa valida. Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.17 e 7.4.11.
x:Char
Per il supporto CLR, la primitiva x:Char
corrisponde a Char.
I tipi string e char interagiscono con la codifica globale del file a livello di XML. Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.7 e 7.4.1.
x:String
Per il supporto CLR, la primitiva x:String
corrisponde a String.
I tipi string e char interagiscono con la codifica globale del file a livello di XML. Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.6.
x:Decimal
Per il supporto CLR, la primitiva x:Decimal
corrisponde a Decimal.
L'analisi XAML viene eseguita intrinsecamente nelle en-US
impostazioni cultura. Con le impostazioni cultura en-US
, il separatore corretto per i componenti di un numero decimale è sempre un punto (.
) indipendentemente dalle impostazioni cultura dell'ambiente di sviluppo o dell'eventuale destinazione client in cui 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 supporto CLR, la primitiva x:Single
corrisponde a Single.
Oltre ai valori numerici, nella sintassi del testo per x:Single
è consentito anche l'uso dei token Infinity
, -Infinity
e NaN
. Per questi token viene rilevata la distinzione tra maiuscole e minuscole.
x:Single
può supportare valori nel formato di notazione scientifico, 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 supporto CLR, la primitiva x:Double
corrisponde a Double.
Oltre ai valori numerici, nella sintassi del testo per x:Double
è consentito l'uso dei token Infinity
, -Infinity
e NaN
. Per questi token viene rilevata la distinzione tra maiuscole e minuscole.
x:Double
può supportare valori nel formato di notazione scientifico. Utilizzare il carattere e
o E
per introdurre la parte dell'esponente.
Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.9 e 7.4.3.
x:Int16
Per il supporto CLR, la primitiva x:Int16
corrisponde a Int16 e x:Int16
viene considerato con segno. In XAML l'assenza di un segno più (+
) nella sintassi del testo indica implicitamente un 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 supporto CLR, la primitiva x:Int32
corrisponde a Int32. x:Int32
viene considerato un valore con segno. In XAML l'assenza di un segno più (+
) nella sintassi del testo indica implicitamente un 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 supporto CLR, la primitiva x:Int64
corrisponde a Int64. x:Int64
viene considerato un valore con segno. In XAML l'assenza di un segno più (+
) nella sintassi del testo indica implicitamente un 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 supporto CLR, la primitiva x:TimeSpan
corrisponde a TimeSpan.
L'analisi XAML per il formato di data e ora viene eseguita intrinsecamente nelle en-US
impostazioni cultura.
Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.16 e 7.4.10.
x:Uri
Per il supporto CLR, la primitiva x:Uri
corrisponde a Uri.
La verifica 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 supporto CLR, la primitiva x:Byte
corrisponde a Byte. Un Byte / x:Byte
oggetto viene considerato come senza segno.
Per la definizione della specifica del linguaggio XAML, vedi [MS-XAML] Sezioni 7.2.10 e 7.4.4.
x:Array
Per il supporto CLR, la primitiva x:Array
corrisponde a Array.
In XAML 2006 è possibile definire una matrice utilizzando una sintassi dell'estensione di markup, mentre la sintassi di XAML 2009 è una primitiva definita dal linguaggio che non richiede l'accesso a un'estensione di markup. Per ulteriori 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 è possibile usare le funzionalità di XAML 2009, ma solo per il codice XAML non compilato dal markup. Il codice XAML compilato dal markup per WPF e il modulo BAML di XAML non supportano attualmente le parole chiave e le funzionalità di XAML 2009.
Un scenario in cui è possibile usare le funzionalità di XAML 2009 con WPF consiste nella creazione di XAML separato e nel successivo caricamento in un runtime di WPF e in un oggetto grafico con XamlReader.Load. L'oggetto System.Windows.Markup.XamlReader di WPF e il relativo metodo Load possono elaborare parole chiave e funzionalità del linguaggio XAML 2009 in una rappresentazione dell'oggetto grafico valida.
.NET Desktop feedback