Share via


Extensión de marcado x:Type

Actualización: noviembre 2007

Proporciona el objeto Type para el tipo proporcionado.

Uso de atributos XAML

<object property="{x:Type prefix:typeNameValue}" .../>

Uso de elementos de objeto XAML

<object>
  <object.property>
    <x:Type TypeName="prefix:typeNameValue"/>
  </object.property>
</object>

Valores XAML

prefix

Opcional. Prefijo que asigna un espacio de nombres XML no predeterminado. Con frecuencia no se necesita especificar un prefijo, vea las Notas.

typeNameValue

Necesario. Nombre de tipo que se puede resolver para hallar el espacio de nombres XML predeterminado actual, o prefijo asignado especificado si se proporciona prefix.

Comentarios

x:Type se utiliza para proporcionar el valor de atributo de una propiedad que acepta Type. Sin embargo, muchas propiedades que toman Type como valor pueden aceptar directamente el nombre del tipo (el valor de tipo String de Name del tipo); vea la documentación de la propiedad concreta para obtener información detallada. En esencia, x:Type es un equivalente de la extensión de marcado para el operador typeof() de C# o para el operador GetType de Microsoft Visual Basic .NET.

El espacio de nombres XML predeterminado se define para cualquier página XAML determinada como atributo en el elemento raíz. El espacio de nombres XML predeterminado que se utiliza para la programación en Windows Presentation Foundation (WPF) suele ser el espacio de nombres de WPF. El identificador de ese espacio de nombres es https://schemas.microsoft.com/winfx/2006/xaml/presentation. La inmensa mayoría de tipos destinados a la programación de aplicaciones de WPF comunes pertenecen a este espacio de nombres. Por consiguiente, en general no es preciso asignar un prefijo para obtener un tipo cuando se utiliza x:Type. Puede que sea necesario asignar un prefijo si se hace referencia a un tipo desde un ensamblado personalizado, o para los tipos que existen en un ensamblado de WPF pero que están dentro de un espacio de nombres CLR que no se ha asignado para formar parte de la definición de espacio de nombres de WPF de ese ensamblado. Para obtener información sobre prefijos, espacios de nombres XML y cómo asignar espacios de nombres CLR, vea Espacios de nombres y asignación de espacios de nombres de XAML.

La sintaxis de atributo es la que se usa más a menudo con esta extensión de marcado. El token de cadena que se proporciona después de la cadena de identificador x:Type se asigna como valor de TypeName de la clase de extensión TypeExtension subyacente. El valor de este atributo es la propiedad Name del tipo deseado.

x:Type se puede utilizar en sintaxis de elementos de objeto. En este caso, es obligatorio especificar el valor de la propiedad TypeName para inicializar correctamente la extensión.

x:Type también se puede utilizar en un uso de atributos detallado que especifica la propiedad TypeName como un par propiedad=valor:

<object property="{x:Type TypeName=typeNameValue}" .../>

El uso detallado suele ser útil para las extensiones que tienen más de una propiedad que se puede configurar, o en aquellos casos en que algunas propiedades son opcionales. Dado que x:Type tiene una sola propiedad configurable, que es obligatoria, este uso detallado no es habitual.

En la implementación del procesador XAML de WPF, el control para esta extensión de marcado se define mediante la clase TypeExtension.

x:Type es una extensión de marcado. Las extensiones de marcado se suelen implementar cuando se necesita que los valores de los atributos de escape no sean valores literales o nombres de controladores, y este requisito es de índole más global que limitarse a colocar los convertidores de tipos en determinados tipos o propiedades. Todas las extensiones de marcado de XAML utilizan los caracteres { y } en su sintaxis de atributo, que es la convención que permite que un procesador XAML reconozca que el atributo se debe procesar mediante una extensión de marcado. Para obtener más información, vea Extensiones de marcado y XAML.

Vea también

Conceptos

Aplicar estilos y plantillas

Información general sobre XAML

Extensiones de marcado y XAML

Referencia

Style