Tipos integrados para primitivas comunes en el lenguaje XAML

XAML 2009 presenta la compatibilidad de nivel de lenguaje XAML para varios tipos de datos que se usan frecuentemente como primitivos en Common Language Runtime (CLR) y otros lenguajes de programación. XAML 2009 agrega compatibilidad para estos primitivos: 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 y x:Array.

Este tema contiene las secciones siguientes.

  • Técnicas anteriores para las primitivas del lenguaje en el marcado XAML
  • Primitivos del lenguaje XAML 2009
  • Compatibilidad con WPF

Técnicas anteriores para las primitivas del lenguaje en el marcado XAML

En el XAML de versiones de WPF anteriores, se podía hacer referencia a los primitivos del lenguaje de CLR asignando el ensamblado y el espacio de nombres que contenían una clase de definición de primitivos de CLR para .NET Framework. La mayoría de estos se encuentran en el ensamblado mscorlib y el espacio de nombres System. Por ejemplo, para usar Int32, podría declarar la siguiente asignación (con un ejemplo de uso que se muestra a continuación):

<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>

Primitivos del lenguaje XAML 2009

Por convención, se muestran los primitivos del lenguaje para XAML y todos los demás elementos del lenguaje XAML, incluido el prefijo x:. Así es como se usan normalmente los elementos del lenguaje XAML en el marcado real. Esta convención se sigue en la documentación conceptual de XAML en WPF, y también en la especificación de XAML.

x:Object

Para el respaldo de CLR, el primitivo x:Object corresponde a Object.

Esta primitiva no se usa normalmente en el marcado de la aplicación, pero podría ser útil para algunos escenarios como comprobar la posibilidad de asignación en un sistema de tipos XAML.

x:Boolean

Para el respaldo de CLR, el x:Boolean primitivo corresponde a Boolean.

Los valores de análisis de XAML para x:Boolean distinguen entre mayúsculas y minúsculas. Observe que x:Bool no es una alternativa aceptada. Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] secciones 5.2.17 y 5.4.11.

x:Char

Para el respaldo de CLR, el x:Char primitivo corresponde a Char.

Los tipos string y char tienen interacción con la codificación total del archivo en el nivel de XML. Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] secciones 5.2.7 y 5.4.1.

x:String

Para el respaldo de CLR, el x:String primitivo corresponde a String.

Los tipos string y char tienen interacción con la codificación total del archivo en el nivel de XML. Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] sección 5.2.6.

x:Decimal

Para el respaldo de CLR, el x:Decimal primitivo corresponde a Decimal.

Observe que el análisis de XAML se hace inherentemente bajo la referencia cultural en-US. Bajo la referencia cultural en-US, el separador correcto para los componentes de un decimal es siempre un punto (.) sin tener en cuenta la configuración de la referencia cultural del entorno de desarrollo o del destino cliente final donde se carga el XAML en tiempo de ejecución.

Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] secciones 5.2.14 y 5.4.8.

x:Single

Para el respaldo de CLR, el x:Single primitivo corresponde a Single.

Además de los valores numéricos, la sintaxis de texto para x:Single también permite los tokens Infinity, -Infinity y NaN. En estos tokens se usa la distinción entre mayúsculas y minúsculas.

x:Single puede admitir valores en forma de notación científica, si el primer carácter de la sintaxis de texto es e o E.

Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] secciones 5.2.8 y 5.4.2.

x:Double

Para el respaldo de CLR, el primitivo x:Double corresponde a Double.

Además de los valores numéricos, la sintaxis de texto para x:Double permite los tokens Infinity, -Infinity y NaN. En estos tokens se usa la distinción entre mayúsculas y minúsculas.

x:Double puede admitir valores en forma de notación científica si el primer carácter de la sintaxis de texto es e o E.

Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] secciones 5.2.9 y 5.4.3.

x:Int16

Para el respaldo de CLR, el primitivo x:Int16 corresponde a Int16 y x:Int16 se trata como un valor con signo. En XAML, la ausencia de un signo más (+) en la sintaxis de texto implica que se trata de un valor con signo positivo.

Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] secciones 5.2.11 y 5.4.5.

x:Int32

Para el respaldo de CLR, el primitivo x:Int32 corresponde a Int32. x:Int32 se trata como un valor con signo. En XAML, la ausencia de un signo más (+) en la sintaxis de texto implica que se trata de un valor con signo positivo.

Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] secciones 5.2.12 y 5.4.6.

x:Int64

Para el respaldo de CLR, el primitivo x:Int64 corresponde a Int64. x:Int64 se trata como un valor con signo. En XAML, la ausencia de un signo más (+) en la sintaxis de texto implica que se trata de un valor con signo positivo.

Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] secciones 5.2.13 y 5.4.7.

x:TimeSpan

Para el respaldo de CLR, el x:TimeSpan primitivo corresponde a TimeSpan.

Observe que el análisis de XAML para el formato de fecha y hora se realiza inherentemente bajo la referencia cultural en-US.

Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] secciones 5.2.16 y 5.4.10.

x:Uri

Para el respaldo de CLR, el x:Uri primitivo corresponde a Uri.

La comprobación de los protocolos no forma parte de la definición de XAML para x:Uri.

Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] secciones 5.2.15 y 5.4.9.

x:Byte

Para el respaldo de CLR, el x:Byte primitivo corresponde a Byte. Un Byte / x:Byte se trata como un valor sin signo.

Para consultar la definición de la especificación del lenguaje XAML, vea [MS-XAML] secciones 5.2.10 y 5.4.4.

x:Array

Para el respaldo de CLR, el primitivo x:Array corresponde a Array.

Puede definir una matriz en XAML 2006 mediante una sintaxis de extensión de marcado; sin embargo, la sintaxis de XAML 2009 es un primitivo definido por el lenguaje que no requiere el acceso a una extensión de marcado. Para obtener más información sobre la compatibilidad de XAML 2006, vea x:Array (Extensión de marcado).

Para obtener la definición de la especificación del lenguaje XAML, vea [MS-XAML] sección 5.2.18.

Compatibilidad con WPF

En WPF, puede usar las características de XAML 2009, pero sólo para el XAML que no está compilado por marcado. El XAML compilado por marcado para WPF y el formulario BAML de XAML no admiten actualmente las palabras clave y características de XAML 2009.

Un escenario donde puede usar las características de XAML 2009 junto con WPF es la creación de XAML dinámico y la posterior carga de ese XAML en un runtime y gráfico de objeto de WPF con XamlReader.Load. El System.Windows.Markup.XamlReader de WPF y su Load pueden procesar las palabras claves del lenguaje y características de XAML 2009 en una representación del gráfico de objeto válida.