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.