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 del atributo XAML
<object property="{CustomResource key}" .../>
Valores de XAML
Término | Descripción |
---|---|
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. |
Comentarios
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 GetResourceLoader 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:
- Derive una clase personalizada de CustomXamlResourceLoader e invalide el método GetResource. No llame a base en la implementación.
- 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 está en el constructor de subclases Application que se genera automáticamente en las plantillas de código subyacente app.xaml. - Ahora puedes usar
{CustomResource}
extensiones en el XAML que la aplicación carga como páginas o desde diccionarios de recursos XAML.
CustomResource es una extensión de marcado. 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. 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.