Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
MRT Core es una versión simplificada del sistema moderno de administración de Windows Resource que se distribuye como parte de la Windows App SDK.
MRT Core tiene características en tiempo de compilación y en tiempo de ejecución. En tiempo de compilación, el sistema crea un índice de todas las variantes diferentes de los recursos que se empaquetan con la aplicación. Este índice es el índice de recursos del paquete o PRI, y también se incluye en el paquete de la aplicación.
Requisitos previos
Para usar las API de MRT Core en el Windows App SDK:
- Descargue e instale la versión más reciente del Windows App SDK. Para obtener más información, consulte Introducción a WinUI 3.
- Siga las instrucciones para Crear su primer proyecto de WinUI o para usar el Windows App SDK en un proyecto existente.
Para obtener más información sobre la disponibilidad de MRT Core en el Windows App SDK, consulte release channels.
Archivo de índice de recursos de paquete (PRI)
Cada paquete de aplicación debe contener un índice binario de los recursos de la aplicación. Este índice se crea en tiempo de compilación y se encuentra en uno o varios archivos PRI. Cada archivo PRI contiene una colección con nombre de recursos, conocida como mapa de recursos.
Un archivo PRI contiene recursos de cadena reales. Los recursos binarios incrustados y de ruta de archivos se indexan directamente desde los archivos del proyecto. Un paquete normalmente contiene un único archivo PRI por idioma, denominado resources.pri. El archivo resources.pri en la raíz de cada paquete se carga automáticamente cuando se crea una instancia del objeto ResourceManager .
Los archivos PRI solo contienen datos, por lo que no usan el formato portable ejecutable (PE). Están diseñados específicamente para ser solo datos.
Nota:
Para las aplicaciones de .NET, en la versión 0.8 y posteriores del Windows App SDK, se establece automáticamente la propiedad Build Action para los archivos de recursos de Visual Studio, lo que reduce la necesidad de configuración manual del proyecto. La versión 1.0 introdujo issue 1674. Esto se ha corregido en la versión 1.1 (desde el canal estable), pero la corrección requiere .NET SDK 6.0.300 o posterior. Si usa una versión inferior del SDK de .NET, siga usando la solución alternativa en las notas de la versión 1.0.
Acceder a los recursos de la aplicación con MRT Core
MRT Core proporciona varias formas diferentes de acceder a los recursos de la aplicación.
Nota:
En Windows App SDK versión preliminar 1.0 y versiones posteriores, las API de MRT Core se encuentran en el espacio de nombres Microsoft.Windows.ApplicationModel.Resources. En versiones anteriores, se encuentran en el espacio de nombres Microsoft.ApplicationModel.Resources .
Funcionalidad básica con ResourceLoader
La manera más sencilla de acceder a los recursos de la aplicación mediante programación es usando la clase ResourceLoader. ResourceLoader proporciona acceso básico a los recursos de cadenas del conjunto de archivos de recursos, bibliotecas referenciadas u otros paquetes.
Funcionalidad avanzada con ResourceManager
La clase ResourceManager proporciona información adicional sobre los recursos, como enumeración e inspección. Esto va más allá de lo que proporciona la clase ResourceLoader .
Un objeto ResourceCandidate representa un único valor de recurso concreto y sus calificadores, como la cadena "Hello World" para inglés o "logo.scale-100.jpg" como un recurso de imagen calificado específico para la resolución scale-100.
Los recursos disponibles para una aplicación se almacenan en colecciones jerárquicas, que se pueden access con un objeto ResourceMap. La clase ResourceManager proporciona access a las distintas instancias de nivel superior ResourceMap usadas por la aplicación, que corresponden a los distintos paquetes de la aplicación. El valor resourceManager.MainResourceMap corresponde al mapa de recursos del paquete de aplicación actual y excluye los paquetes de marcos a los que se hace referencia. Cada ResourceMap se nombra según el nombre del paquete que se especifica en el manifiesto del paquete. Dentro de un ResourceMap hay subárboles (consulte ResourceMap.GetSubtree). Los subárboles normalmente corresponden a los archivos de recursos que contienen el recurso.
El ResourceManager no solo admite acceso a los recursos de cadena de una aplicación, también conserva la capacidad para enumerar e inspeccionar los distintos recursos de archivo. Para evitar colisiones entre archivos y otros recursos que se originan desde dentro de un archivo, todas las rutas de acceso de archivos indexadas residen en un subárbol "Files" ResourceMap reservado. Por ejemplo, el archivo "\Images\logo.png" corresponde al nombre de recurso "Files/images/logo.png".
Calificar la selección de recursos con ResourceContext
Los candidatos de recursos se eligen en función de un resourceContext determinado, que es una colección de valores de calificador de recursos (idioma, escala, contraste, etc.). Un contexto predeterminado utiliza la configuración actual de la aplicación para cada valor de calificador, a menos que sea anulado. Por ejemplo, los recursos como las imágenes pueden ajustarse a la escala, la cual varía de un monitor a otro y, por lo tanto, de una vista de aplicación a otra. Por este motivo, cada vista de aplicación tiene un contexto predeterminado distinto. Siempre que recupere un candidato de recurso, debe pasar una instancia de ResourceContext para obtener el valor más adecuado para una vista determinada.
Ejemplo
Para ver un ejemplo que muestra cómo usar la API de MRT Core, consulte el ejemplo MRT Core.
Consulte también
Windows developer