Compartir a través de


Extensión de marcado ComponentResourceKey

Actualización: noviembre 2007

Define claves para recursos que se cargan desde ensamblados externos, y hace referencia a ellas. Esto permite especificar en una búsqueda de recursos un tipo de destino de un ensamblado, en lugar de un diccionario de recursos explícito del ensamblado.

Uso de atributos XAML (clave de valor, sintaxis compacta)

<object x:Key="{ComponentResourceKey {x:Type targetTypeName}, targetID}" .../>

Uso de atributos XAML (clave de valor, sintaxis detallada)

<object x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type targetTypeName}, ResourceID=targetID}" .../>

Uso de atributos XAML (recurso de solicitud, sintaxis compacta)

<object property="{DynamicResource {ComponentResourceKey {x:Type targetTypeName}, targetID}}" .../>

Uso de atributos XAML (recurso de solicitud, sintaxis detallada)

<object property="{DynamicResource {ComponentResourceKey TypeInTargetAssembly={x:Type targetTypeName}, ResourceID=targetID}}" .../>

Valores XAML

targetTypeName

Nombre del tipo common language runtime (CLR) público definido en el ensamblado de recursos.

targetID

Clave del recurso. Al buscar los recursos, targetID será análogo al x:Key (atributo) del recurso.

Comentarios

TypeInTargetAssembly identifica un tipo que existe en el ensamblado de destino donde el recurso está definido en realidad. ComponentResourceKey se puede definir y utilizar independientemente de si se sabe con exactitud dónde está definida la propiedad TypeInTargetAssembly, pero en su caso deberá resolverse el tipo a través de los ensamblados a los que se hace referencia.

Un uso común de ComponentResourceKey consiste en definir claves que luego se exponen como miembros de una clase. Para este uso, se utiliza el constructor de clase ComponentResourceKey, no la extensión de marcado.

La sintaxis de atributo se suele utilizar para la extensión de marcado ComponentResourceKey. La sintaxis compacta mostrada se basa en la firma del constructor ComponentResourceKey.ComponentResourceKey; es importante el orden en el que se proporcionan targetTypeName y targetID. La sintaxis detallada se basa en el constructor predeterminado ComponentResourceKey.ComponentResourceKey y, a continuación, establece TypeInTargetAssembly y ResourceId de manera análoga a una verdadera sintaxis de atributo en un elemento de objeto. En la sintaxis detallada, el orden en que se establecen las propiedades carece de importancia. La relación y los mecanismos de estas dos alternativas (compacta y detallada) se describen con más detalle en el tema Extensiones de marcado y XAML.

ComponentResourceKey se puede utilizar en la sintaxis de elementos de objeto. En este caso, es necesario especificar el valor de las propiedades TypeInTargetAssembly y ResourceId para inicializar correctamente la extensión.

La clase ComponentResourceKey define el control para esta extensión de marcado en la implementación del lector XAML de WPF.

ComponentResourceKey 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

ComponentResourceKey

Style

ControlTemplate