Compartir a través de


Extensión de marcado {CustomResource}

Proporciona un valor para cualquier atributo XAML mediante la evaluación de una referencia a un recurso que procede de una implementación personalizada de búsqueda de recursos. La búsqueda de recursos se realiza mediante una implementación de la clase CustomXamlResourceLoader .

Uso de atributos XAML

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

Valores XAML

Término Description
key Clave del recurso solicitado. La forma en que se asigna inicialmente la clave es específica de la implementación de la clase CustomXamlResourceLoader que está registrada actualmente para su uso.

Observaciones

CustomResource es una técnica para obtener valores definidos en otra parte de un repositorio de recursos personalizados. Esta técnica es relativamente avanzada y no la usan la mayoría de los escenarios de aplicaciones de Windows Runtime.

El modo en que customResource se resuelve en un diccionario de recursos no se describe en este tema, ya que puede variar ampliamente en función de cómo se implemente CustomXamlResourceLoader .

El analizador XAML de Windows Runtime llama al método GetResource de la implementación CustomXamlResourceLoader cada vez que encuentra un {CustomResource} uso en el marcado. El resourceId que se pasa a GetResource procede del argumento clave y los demás parámetros de entrada proceden del contexto, como la propiedad a la que se aplica el uso.

Un {CustomResource} uso no funciona de forma predeterminada (la implementación base de GetResource está incompleta). Para hacer una referencia válida {CustomResource} , debe realizar cada uno de estos pasos:

  1. Derive una clase personalizada de CustomXamlResourceLoader e invalide el método GetResource . No llame a la función base en la implementación.
  2. Establezca CustomXamlResourceLoader.Current para hacer referencia a la clase en la lógica de inicialización. Esto debe ocurrir antes de que se cargue cualquier XAML de nivel de página que incluya el uso de la {CustomResource} extensión. Un lugar para establecer CustomXamlResourceLoader.Current es en el constructor de la subclase Application que se genera automáticamente en las plantillas de código subyacente de App.xaml.
  3. Ahora puedes usar {CustomResource} extensiones en el XAML que tu aplicación carga como páginas, o desde diccionarios de recursos XAML.

CustomResource 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.