2011-11-13 19 views
9

¿Hay alguna diferencia (o ventaja) para el uso de esta declaración:x: Key & TargetType en estilos

Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}" 

con omitiendo el atributo x:Key?

Creo que WPF asigna la llave al mismo x:Type debajo del capó.

Respuesta

24

La documentación de MSDN para Style.TargetType confirma sus sospechas:

Establecer la propiedad TargetType al tipo TextBlock sin establecer una x: Key establece implícitamente la x: Key a {x: Tipo TextBlock}. Esto también significa que si le da al Estilo anterior un valor x: Key de cualquier cosa que no sea {x: Type TextBlock}, el Estilo no se aplicará a todos los elementos de TextBlock automáticamente. En su lugar, debe aplicar el estilo a los elementos de TextBlock explícitamente.

Si la clave del diccionario de recursos de un estilo es un tipo, ese estilo se utiliza como el estilo predeterminado para todas las instancias de ese tipo que no especifican explícitamente un estilo. Dado que el tipo de destino se suele suministrar, la sintaxis de omisión de la clave es simplemente un acceso directo para definir un estilo predeterminado.

+0

bien, solo vi esto en algunos buenos ejemplos y esto ayudó, gracias Rick – Manuel

+8

@Manuel: Si esta respuesta te ayudó, ¿por qué no la aceptas ** más que **? –

+0

SO necesita un voto a favor. – C4u