Compartir a través de


Atributo x:Shared

Actualización: noviembre 2007

Cuando se establece en false, modifica el comportamiento de recuperación de recursos de Windows Presentation Foundation (WPF), de suerte que las solicitudes de un recurso crearán una nueva instancia por cada solicitud, en lugar de compartir la misma instancia para todas las solicitudes.

Uso de atributos XAML

<ResourceDictionary>
  <object x:Shared="false".../>
</ResourceDictionary>

Comentarios

La condición de x:Shared predeterminada para los recursos es true. Esta condición significa que cualquier solicitud de recurso devolverá siempre la misma instancia. Al modificar un objeto devuelto a través de una API de recursos como FindResource, o al modificarlo directamente dentro de un ResourceDictionary, se cambia el recurso original. Si las referencias a ese recurso eran dinámicas, los consumidores de ese recurso obtendrán el recurso modificado. (Si las referencias al recurso eran estáticas, los cambios que se produzcan en el recurso después del tiempo de procesamiento de XAML serán irrelevantes. Para obtener detalles sobre las diferencias entre las referencias de recursos estáticas y dinámicas, vea Información general sobre recursos.)

No se suele especificar x:Shared="true", porque ya es el valor predeterminado. No existe ningún código equivalente directo para x:Shared.

Un escenario para x:Shared="false" es aquél en que se define una clase derivada de FrameworkElement o de FrameworkContentElement como recurso y se introduce el recurso de elemento en un modelo de contenido. x:Shared="false" permite introducir un recurso de elemento varias veces en la misma colección (como UIElementCollection, por ejemplo). Sin x:Shared="false", no sería válido, porque la colección exige la unicidad en su contenido. Sin embargo, el comportamiento de x:Shared="false" crea otra instancia idéntica del recurso, en lugar de devolver la misma.

Otro escenario para x:Shared="false" es el uso de un recurso Freezable para valores de animación, pero desea modificarlo para cada animación.

La administración de cadena de "false" no distingue mayúsculas de minúsculas.

x:Shared únicamente es válido en las condiciones siguientes:

Vea también

Conceptos

Información general sobre recursos

Referencia

ResourceDictionary

Otros recursos

Elementos base