Types intégrés pour les primitives associées au langage XAML courant
XAML 2009 présente la prise en charge au niveau du langage XAML pour plusieurs types de données qui sont des primitives fréquemment utilisées dans le CLR (Common Language Runtime) et d'autres langages de programmation. XAML 2009 ajoute la prise en charge des primitives suivantes : 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 et x:Array
Cette rubrique comprend les sections suivantes.
- Anciennes techniques pour les primitives de langage dans le balisage XAML
- Primitives de langage XAML 2009
- Prise en charge WPF
Anciennes techniques pour les primitives de langage dans le balisage XAML
En XAML pour les versions WPF précédentes, vous pouvez faire référence aux primitives de langage CLR en mappant l'assembly et l'espace de noms qui contenaient une classe de définition de primitive CLR pour le .NET Framework. La plupart d'entre elles se trouvent dans l'assembly mscorlib et l'espace de noms System. Par exemple, vous pouvez déclarer le mappage suivant (avec un exemple d'utilisation indiqué ci-après) pour utiliser Int32 :
<Application xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://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>
Primitives de langage XAML 2009
Par convention, les primitives de langage pour XAML et tous les autres éléments de langage XAML sont indiqués, notamment le préfixe x:. Les éléments du langage XAML sont généralement utilisés de cette manière dans le balisage réel. Cette convention est respectée dans la documentation conceptuelle pour XAML de WPF, ainsi que dans la spécification XAML.
x:Object
Pour le stockage CLR, la primitive x:Object correspond à Object.
Cette primitive n'est généralement pas utilisée dans le balisage de l'application, mais peut être utile pour des scénarios tels que la vérification de l'assignabilité dans un système de type XAML.
x:Boolean
Pour le stockage CLR, la primitive x:Boolean correspond à Boolean.
XAML analyse des valeurs pour x:Boolean comme respectant la casse. Notez que x:Bool n'est pas une alternative acceptée. Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.17 et 5.4.11 (page éventuellement en anglais).
x:Char
Pour le stockage CLR, la primitive x:Char correspond à Char.
Les types de chaîne et de caractère interagissent avec l'encodage global du fichier au niveau XML. Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.7 et 5.4.1 (page éventuellement en anglais).
x:String
Pour le stockage CLR, la primitive x:String correspond à String.
Les types de chaîne et de caractère interagissent avec l'encodage global du fichier au niveau XML. Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.6 (page éventuellement en anglais).
x:Decimal
Pour le stockage CLR, la primitive x:Decimal correspond à Decimal.
Notez que l'analyse XAML est fondamentalement réalisée dans le cadre d'une culture en-US. Dans le cadre de la culture en-US, le séparateur correct pour les composants d'un décimal est toujours le point (.), indépendamment des paramètres de culture de l'environnement de développement ou de la cible cliente éventuelle dans laquelle le code XAML est chargé lors de l'exécution.
Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.14 et 5.4.8 (page éventuellement en anglais).
x:Single
Pour le stockage CLR, la primitive x:Single correspond à Single.
Outre les valeurs numériques, la syntaxe de texte de x:Single autorise également les jetons Infinity, -Infinity et NaN. Ces jetons sont traités comme respectant la casse.
x:Single peut prendre en charge des valeurs au format de notation scientifique, si le premier caractère de la syntaxe de texte est e ou E.
Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.8 et 5.4.2 (page éventuellement en anglais).
x:Double
Pour le stockage CLR, la primitive x:Double correspond à Double.
Outre les valeurs numériques, la syntaxe de texte de x:Double autorise également les jetons Infinity, -Infinity et NaN. Ces jetons sont traités comme respectant la casse.
x:Double peut prendre en charge des valeurs au format de notation scientifique, si le premier caractère de la syntaxe de texte est e ou E.
Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.9 et 5.4.3.
x:Int16
Pour le stockage CLR, la primitive x:Int16 correspond à Int16 et x:Int16 est traitée comme étant signée. En XAML, l'absence du signe plus (+) dans la syntaxe du texte est implicitement traitée comme une valeur positive signée.
Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.11 et 5.4.5.
x:Int32
Pour le stockage CLR, la primitive x:Int32 correspond à Int32. La primitive x:Int32 est traitée comme étant signée. En XAML, l'absence du signe plus (+) dans la syntaxe du texte est implicitement traitée comme une valeur positive signée.
Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.12 et 5.4.6 (page éventuellement en anglais).
x:Int64
Pour le stockage CLR, la primitive x:Int64 correspond à Int64. La primitive x:Int64 est traitée comme étant signée. En XAML, l'absence du signe plus (+) dans la syntaxe du texte est implicitement traitée comme une valeur positive signée.
Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.13 et 5.4.7 (page éventuellement en anglais).
x:TimeSpan
Pour le stockage CLR, la primitive x:TimeSpan correspond à TimeSpan.
Notez que l'analyse XAML du format heure-date est fondamentalement réalisée dans le cadre de la culture en-US.
Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.16 et 5.4.10 (page éventuellement en anglais).
x:Uri
Pour le stockage CLR, la primitive x:Uri correspond à Uri.
La vérification des protocoles ne fait pas partie de la définition XAML de x:Uri.
Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.15 et 5.4.9 (page éventuellement en anglais).
x:Byte
Pour le stockage CLR, la primitive x:Byte correspond à Byte. Byte/x:Byte est traité comme étant non signé.
Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.10 et 5.4.4 (page éventuellement en anglais).
x:Array
Pour le stockage CLR, la primitive x:Array correspond à Array.
Vous pouvez définir un tableau en XAML 2006 à l'aide d'une syntaxe d'extension de balisage. Cependant, la syntaxe XAML 2009 est une primitive définie par le langage qui ne requiert pas l'accès à une extension de balisage. Pour plus d'informations sur la prise en charge XAML 2006, consultez x:Array, extension de balisage.
Pour obtenir la définition de la spécification du langage XAML, consultez [MS-XAML] Sections 5.2.18 (page éventuellement en anglais).
Prise en charge WPF
Dans WPF, vous pouvez utiliser des fonctionnalités XAML 2009, mais uniquement pour le XAML non compilé par balisage. Le XAML compilé par balisage pour WPF et la forme de langage BAML de XAML ne prend actuellement pas en charge les mots clés et les fonctionnalités XAML 2009.
Un scénario dans lequel vous pouvez utiliser des fonctionnalités XAML 2009 avec WPF est celui dans lequel vous créez un XAML libre, puis le chargez dans une exécution de WPF et un graphique d'objets avec XamlReader.Load. Le System.Windows.Markup.XamlReader de WPF et sa Load peuvent traiter des mots clés et des fonctionnalités de langage XAML 2009 dans une représentation de graphique d'objets valide.