Extensión de marcado StaticResourceStaticResource Markup Extension

Proporciona un valor para cualquier XAMLXAML atributo de propiedad mediante la búsqueda de una referencia a un recurso ya definido.Provides a value for any XAMLXAML property attribute by looking up a reference to an already defined resource. Comportamiento de búsqueda de ese recurso es análogo a la búsqueda de tiempo de carga, que se va a buscar los recursos que se cargaron previamente desde el marcado del elemento actual XAMLXAML página, así como otros orígenes de la aplicación y generará el valor de ese recurso como el valor de propiedad en los objetos de tiempo de ejecución.Lookup behavior for that resource is analogous to load-time lookup, which will look for resources that were previously loaded from the markup of the current XAMLXAML page as well as other application sources, and will generate that resource value as the property value in the run-time objects.

Uso de atributos XAMLXAML Attribute Usage

<object property="{StaticResource key}" .../>  

Uso de elementos de objeto XAMLXAML Object Element Usage

<object>  
  <object.property>  
<StaticResource ResourceKey="key" .../>  
  </object.property>  
</object>  

Valores XAMLXAML Values

key Clave del recurso solicitado.The key for the requested resource. Esta clave se asignó inicialmente por el Directiva x: Key si un recurso se creó en el marcado, o se proporcionó como el key parámetro al llamar a ResourceDictionary.Add si el recurso se creó en el código.This key was initially assigned by the x:Key Directive if a resource was created in markup, or was provided as the key parameter when calling ResourceDictionary.Add if the resource was created in code.

ComentariosRemarks

Importante

Un StaticResource no debe intentar realizar una referencia adelantada a un recurso definido léxicamente adicional dentro de la XAMLXAML archivo.A StaticResource must not attempt to make a forward reference to a resource that is defined lexically further within the XAMLXAML file. Intenta hacer esto, no se admite y, aunque este tipo de referencia no genera ningún error, al intentar la referencia adelantada incurrirá en una penalización de rendimiento de tiempo de carga cuando las tablas hash interna que representa un ResourceDictionary se buscan.Attempting to do so is not supported, and even if such a reference does not fail, attempting the forward reference will incur a load time performance penalty when the internal hash tables representing a ResourceDictionary are searched. Para obtener mejores resultados, ajustar la composición de los diccionarios de recursos que se pueden evitar las referencias adelantadas.For best results, adjust the composition of your resource dictionaries such that forward references can be avoided. Si no se puede evitar una referencia adelantada, utilice DynamicResource Markup Extension en su lugar.If you cannot avoid a forward reference, use DynamicResource Markup Extension instead.

Especificado ResourceKey debe corresponder a un recurso existente, identificado con un Directiva x: Key en algún nivel en la página, aplicación, temas de control disponibles y los recursos externos o los recursos del sistema.The specified ResourceKey should correspond to an existing resource, identified with an x:Key Directive at some level in your page, application, the available control themes and external resources, or system resources. Se produce la búsqueda de recursos en ese orden.The resource lookup occurs in that order. Para obtener más información acerca del comportamiento de búsqueda de recursos para recursos estáticos y dinámicos, consulte recursos XAML.For more information about resource lookup behavior for static and dynamic resources, see XAML Resources.

Una clave de recurso puede ser cualquier cadena definida en el gramática de XamlName.A resource key can be any string defined in the XamlName Grammar. Una clave de recurso también puede ser otros tipos de objeto, como un Type.A resource key can also be other object types, such as a Type. Un Type clave es fundamental en cómo puede cambiar el estilo de los temas, a través de una clave de estilo implícito.A Type key is fundamental to how controls can be styled by themes, through an implicit style key. Para obtener más información, consulte Información general sobre la creación de controles.For more information, see Control Authoring Overview.

Es la manera declarativa alternativa de hacer referencia a un recurso como un DynamicResource Markup Extension.The alternative declarative means of referencing a resource is as a DynamicResource Markup Extension.

La sintaxis de atributo es la que se usa normalmente con esta extensión de marcado.Attribute syntax is the most common syntax used with this markup extension. El token de cadena que se proporciona después de la cadena de identificador StaticResource se asigna como valor de ResourceKey de la clase de extensión StaticResourceExtension subyacente.The string token provided after the StaticResource identifier string is assigned as the ResourceKey value of the underlying StaticResourceExtension extension class.

StaticResource se puede usar en la sintaxis de elemento de objeto.StaticResource can be used in object element syntax. En este caso, especificando el valor de la ResourceKey propiedad es obligatoria.In this case, specifying the value of the ResourceKey property is required.

StaticResource también se puede utilizar en el uso de atributos detallado que especifica la propiedad ResourceKey como un par de propiedad=valor:StaticResource can also be used in a verbose attribute usage that specifies the ResourceKey property as a property=value pair:

<object property="{StaticResource ResourceKey=key}" .../>  

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.The verbose usage is often useful for extensions that have more than one settable property, or if some properties are optional. Dado que StaticResource tiene una sola propiedad configurable, que es obligatoria, este uso detallado no es habitual.Because StaticResource has only one settable property, which is required, this verbose usage is not typical.

En el WPFWPF XAMLXAML implementación del procesador, el control para esta extensión de marcado se define por la StaticResourceExtension clase.In the WPFWPF XAMLXAML processor implementation, the handling for this markup extension is defined by the StaticResourceExtension class.

StaticResource es una extensión de marcado.StaticResource is a markup extension. 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.Markup extensions are typically implemented when there is a requirement to escape attribute values to be other than literal values or handler names, and the requirement is more global than just putting type converters on certain types or properties. Todas las extensiones de marcado de XAMLXAML usan los caracteres { y } en su sintaxis de atributo, que es la convención que permite que un procesador de XAMLXAML reconozca que el atributo se debe procesar mediante una extensión de marcado.All markup extensions in XAMLXAML use the { and } characters in their attribute syntax, which is the convention by which a XAMLXAML processor recognizes that a markup extension must process the attribute. Para más información, vea Extensiones de marcado y XAML de WPF.For more information, see Markup Extensions and WPF XAML.

Vea tambiénSee also