Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Proporciona un valor para cualquier atributo de propiedad XAML buscando una referencia a un recurso ya definido. El comportamiento de búsqueda de ese recurso es análogo a la búsqueda en tiempo de carga, que buscará los recursos que se cargaron previamente desde el marcado de la página XAML actual, así como otros orígenes de la aplicación, y generará ese valor de recurso como valor de propiedad en los objetos en tiempo de ejecución.
Uso de atributos XAML
<object property="{StaticResource key}" ... />
Uso de elementos de objeto XAML
<object>
<object.property>
<StaticResource ResourceKey="key" ... />
</object.property>
</object>
Valores XAML
Importancia | Descripción |
---|---|
key |
La clave del recurso solicitado. Esta clave fue asignada inicialmente por la directiva x:Key si se creó un recurso en el marcado, o se proporcionó como el parámetro key al llamar a ResourceDictionary.Add si el recurso se creó en el código. |
Observaciones
Importante
No StaticResource
debe intentar hacer una referencia anticipada a un recurso que se define más adelante en el archivo XAML. Intentar hacerlo no está soportado y, aunque dicha referencia no falle, intentar la referencia hacia adelante habrá un impacto en el rendimiento del tiempo de carga cuando se están buscando las tablas hash internas que representan un ResourceDictionary. Para obtener los mejores resultados, ajuste la composición de los diccionarios de recursos de forma que se puedan evitar las referencias reenviadas. Si no puede evitar una referencia directa, use la extensión de marcado DynamicResource en su lugar.
El especificado ResourceKey debe corresponder a un recurso existente, identificado con una directiva x:Key en algún nivel de la página, la aplicación, los temas de control disponibles y los recursos externos o los recursos del sistema. La búsqueda de recursos se produce en ese orden. Para obtener más información sobre el comportamiento de búsqueda de recursos para recursos estáticos y dinámicos, consulta Recursos XAML.
Una clave de recurso puede ser cualquier cadena definida en la gramática XamlName. Una clave de recurso también puede ser otros tipos de objeto, como .Type Una Type clave es fundamental para cómo se pueden aplicar estilos a los controles mediante temas, a través de una clave de estilo implícita. Para obtener más información, consulte Información general sobre la creación de controles.
Los medios declarativos alternativos de hacer referencia a un recurso son como una extensión de marcado DynamicResource.
La sintaxis de atributo es la sintaxis más común que se usa con esta extensión de marcado. El token de cadena proporcionado después de asignar la cadena de identificador de StaticResource
como valor ResourceKey de la clase de extensión StaticResourceExtension subyacente.
StaticResource
se puede usar en la sintaxis del elemento de objeto. En este caso, se requiere especificar el valor de la ResourceKey propiedad .
StaticResource
también se puede usar en un uso detallado de atributos que especifica la ResourceKey propiedad como un par property=value:
<object property="{StaticResource ResourceKey=key}" ... />
El uso detallado suele ser útil para las extensiones que tienen más de una propiedad configurable, o algunas propiedades opcionales. Dado que StaticResource
solo tiene una propiedad configurable, que es necesaria, no suele ser común un uso tan detallado.
En la implementación del procesador XAML de WPF, el manejo de esta extensión de marcado está definido por la clase StaticResourceExtension.
StaticResource
es una extensión de marcado. Las extensiones de marcado normalmente se implementan cuando hay un requisito de escape de valores de atributo que no sean valores literales o nombres de controlador, y el requisito es más global que simplemente colocar convertidores de tipos en determinados tipos o propiedades. Todas las extensiones de marcado en XAML usan los caracteres { y } en su sintaxis de atributo, que es la convención por la que un procesador XAML reconoce que una extensión de marcado debe procesar el atributo. Para obtener más información, consulta Extensiones de marcado y XAML de WPF.
Consulte también
.NET Desktop feedback