Share via


Extensiones de marcado x:Static

Actualización: noviembre 2007

Hace referencia a cualquier entidad de código estática por valor definida conforme a Common Language Specification (CLS). La propiedad a la que se hace referencia se evalúa antes de cargar el resto de la página XAML y se puede utilizar para proporcionar el valor de una propiedad en XAML.

Uso de atributos XAML

<object property="{x:Static prefix:typeName.staticMemberName}" .../>

Uso de elementos de objeto XAML

<object>
  <object.property>
    <x:Static Member="prefix:typeName.staticMemberName" .../>
  </object.property>
</object>

Valores XAML

prefix

Opcional. Prefijo que asigna un espacio de nombres xmlns no predeterminado. Vea Comentarios.

typeName

Necesario. Tipo que define el miembro estático deseado.

staticMemberName

Necesario. Nombre del miembro de valor estático deseado (una constante, una propiedad estática, un campo o un valor de enumeración).

Comentarios

La entidad de código a la que se hace referencia debe ser una de las siguientes:

  • constante

  • propiedad estática

  • campo

  • valor de enumeración

Si se especifica cualquier otra entidad de código, como una propiedad no estática, da lugar a un error en tiempo de compilación.

x:Static puede hacer referencia a campos estáticos o propiedades que no pertenezcan al espacio de nombres xmlns predeterminado, pero para ello se requiere una asignación de prefijo. El espacio de nombres xmlns predeterminado se define para cualquier elemento XAML concreto como un atributo. Por lo general, esto se define en el elemento raíz para que xmlns se aplique a todos los elementos que se encuentren por debajo de la 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. Debe asignar un prefijo si se cumple una de las condiciones siguientes:

  • Se hace referencia a un tipo que existe en Microsoft .NET Framework pero que no forma parte del espacio de nombres de WPF. Éste es un escenario relativamente común para utilizar x:Static. Por ejemplo, puede utilizar una referencia x:Static con un prefijo que se asigna al espacio de nombres System de CLR a fin de hacer referencia a las propiedades estáticas de la clase Environment.

  • Se hace referencia a un tipo de un ensamblado personalizado.

  • Se hace referencia a un tipo que existe en un ensamblado de WPF, pero ese tipo se encuentra dentro de un espacio de nombres CLR que no se ha asignado de manera que forme parte del espacio de nombres de WPF. La asignación se lleva a cabo mediante definiciones en ese ensamblado. Los espacios de nombres CLR sin asignar son típicos de las definiciones de clase de WPF de los espacios de nombres CLR que no suelen estar pensados para XAML, como System.Windows.Threading.

Para obtener más información sobre prefijos y espacios de nombres XML, vea Espacios de nombres y asignación de espacios de nombres de XAML.

Puede utilizar referencias de x:Static que no sean directamente el tipo de valor de una propiedad, pero que se puedan evaluar como ese tipo. Por ejemplo, puede utilizar una referencia de x:Static estática para obtener un valor de una enumeración, o bien fuera de una propiedad estática como los distintos colores y pinceles definidos por SystemColors. Las referencias de x:Static se pueden utilizar para establecer cualquier propiedad en la sintaxis XAML, incluso aquéllas que se basen en una propiedad con un tipo de referencia, porque la administración real del valor de x:Static una vez evaluado puede variar, según los comportamientos de los convertidores de tipos de la propiedad donde se aplica el valor estático.

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:Static se asigna como valor de Member de la clase de extensión StaticExtension subyacente.

x:Static se puede utilizar en la sintaxis de elementos de objeto. En este caso, es preciso especificar el valor de la propiedad Member.

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

<object property="{x:Static Member=prefix:typeName.staticMemberName}" .../>

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:Static 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 StaticExtension.

x:Static 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 información detallada sobre las extensiones de marcado en general, 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

Extensión de marcado x:Type