CustomXamlResourceLoader Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Habilita la carga de diccionarios de recursos personalizados como orígenes. Invalide GetResource para proporcionar la lógica que un analizador XAML puede usar para buscar los recursos necesarios en tiempo de carga.
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CustomXamlResourceLoader
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class CustomXamlResourceLoader
Public Class CustomXamlResourceLoader
- Herencia
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
Comentarios
CustomXamlResourceLoader admite un uso {CustomResource}
de extensión de marcado . Esta extensión de marcado es única para el marco XAML de Windows Runtime (no existía en tecnologías XAML precursoras, como Windows Presentation Foundation (WPF) y Microsoft Silverlight).
Un uso de {CustomResource}
no funciona de forma predeterminada (la implementación básica de GetResource está incompleta). Para hacer una referencia válida de {CustomResource}
debes realizar todos estos pasos:
- Derivar una clase personalizada desde CustomXamlResourceLoader e invalidar el método GetResource. No llames a la base en la implementación.
- Establecer CustomXamlResourceLoader.Current en una referencia a tu clase en la lógica de inicialización. Esto debe suceder antes de que se cargue cualquier código XAML de nivel de página que incluya el uso de la extensión
{CustomResource}
. 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 App.xaml. - Ahora puedes usar las extensiones
{CustomResource}
en el código XAML que tu aplicación carga como páginas, o desde dentro de los diccionarios de recursos XAML.
La extensión de marcado {CustomResource} se puede usar desde XAML de forma similar a la extensión de marcado {StaticResource}, que realiza la búsqueda de recursos integrada desde varias ubicaciones de ResourceDictionary . La diferencia es que la propia aplicación implementa la lógica de búsqueda de recursos para un uso de extensión de marcado {CustomResource} proporcionando un cargador de recursos personalizado. Para implementar el cargador de recursos personalizado, la aplicación debe proporcionar una clase que derive de CustomXamlResourceLoader e invalide el método GetResource . La aplicación debe registrar su cargador de recursos personalizado estableciendo la propiedad estática CustomXamlResourceLoader.Current en una instancia de su clase del cargador de recursos personalizado. Este registro debe realizarse en un subproceso de interfaz de usuario XAML antes de cualquier análisis de XAML que use la extensión de marcado {CustomResource}. Si la aplicación usa varios subprocesos de interfaz de usuario, se debe realizar un registro independiente en cada uno.
La forma en que CustomXamlResourceLoader almacena sus recursos probablemente no está relacionada con ResourceDictionary en absoluto. Normalmente, además de las invalidaciones necesarias, la clase CustomXamlResourceLoader proporcionaría métodos internos o públicos que permiten almacenar, crear claves y trabajar con los elementos de recursos de una colección subyacente.
Constructores
CustomXamlResourceLoader() |
Inicializa una nueva instancia de la clase CustomXamlResourceLoader . |
Propiedades
Current |
Devuelve la instancia activa de CustomXamlResourceLoader . |
Métodos
GetResource(String, String, String, String) |
Cuando se reemplaza en una clase derivada, especifica la lógica de búsqueda de recursos para este CustomXamlResourceLoader. Dado un identificador de recurso y alguna información de tipo sobre el resultado esperado, devuelve el recurso solicitado. |