Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
MRT Core is een gestroomlijnde versie van het moderne Windows Resource Management System die wordt gedistribueerd als onderdeel van de Windows App SDK.
MRT Core heeft zowel build-time- als runtimefuncties. Tijdens de build maakt het systeem een index van alle verschillende varianten van de resources die zijn verpakt met uw app. Deze index is de Pakketresource-index of PRI en is ook opgenomen in het pakket van uw app.
Vereiste voorwaarden
MRT Core-API's gebruiken in de Windows App SDK:
- Download en installeer de nieuwste versie van de Windows App SDK. Zie Get started met WinUI 3 voor meer informatie.
- Volg de instructies voor het Maak uw eerste WinUI-project of gebruik de Windows App SDK in een bestaande project.
Zie releasekanalen voor meer informatie over de beschikbaarheid van MRT Core in de Windows App SDK.
PRI-bestand (Package Resource Index)
Elk app-pakket moet een binaire index van de resources in de app bevatten. Deze index wordt gemaakt tijdens het bouwen en bevindt zich in een of meer PRI-bestanden. Elk PRI-bestand bevat een benoemde verzameling resources, aangeduid als een resourcemap.
Een PRI-bestand bevat werkelijke tekenreeksbronnen. Ingesloten binaire en bestandspadbronnen worden rechtstreeks vanuit de project bestanden geïndexeerd. Een pakket bevat doorgaans één PRI-bestand per taal, met de naam resources.pri. Het bestand resources.pri in de hoofdmap van elk pakket wordt automatisch geladen wanneer het ResourceManager-object wordt geïnstantieerd.
PRI-bestanden bevatten alleen gegevens, dus gebruiken ze niet de portable executable (PE)-indeling. Ze zijn specifiek ontworpen om uitsluitend met gegevens te werken.
Opmerking
Voor .NET-apps, in Windows App SDK versie 0.8 en hoger, wordt de bestandseigenschap Build Action voor resourcebestanden in Visual Studio automatisch ingesteld, waardoor er minder handmatige project configuratie nodig is. Versie 1.0 heeft issue 1674 geïntroduceerd. Dit is opgelost in 1.1 (vanuit het stabiele kanaal), maar voor de oplossing is .NET SDK 6.0.300 of hoger vereist. Als u een lagere versie van de .NET SDK gebruikt, kunt u de tijdelijke oplossing blijven gebruiken in de opmerkingen bij de release 1.0.
Toegang tot appbronnen met MRT Core
MRT Core biedt verschillende manieren om uw app-resources te benaderen.
Opmerking
In Windows App SDK 1.0 Preview 1 en hoger bevinden MRT Core-API's zich in de naamruimte Microsoft.Windows.ApplicationModel.Resources. In eerdere versies bevinden ze zich in de naamruimte Microsoft.ApplicationModel.Resources .
Basisfunctionaliteit met ResourceLoader
De eenvoudigste manier om uw app-resources programmatisch te access, is met behulp van de klasse ResourceLoader. ResourceLoader biedt u basis toegang tot tekstenbronnen uit de set resourcebestanden, bibliotheken waarnaar wordt verwezen of andere pakketten.
Geavanceerde functionaliteit met ResourceManager
De ResourceManager-klasse biedt aanvullende informatie over resources, zoals opsomming en inspectie. Dit gaat verder dan wat de ResourceLoader-klasse biedt.
Een ResourceCandidate object vertegenwoordigt één concrete resourcewaarde en de bijbehorende kwalificaties, zoals de tekenreeks 'Hello World' voor Engels of 'logo.scale-100.jpg' als een gekwalificeerde afbeeldingsresource die specifiek is voor de resolutie van schaal 100.
Resources die beschikbaar zijn voor een app worden opgeslagen in hiërarchische verzamelingen, die u kunt access met een ResourceMap-object. De klasse ResourceManager biedt toegang tot de verschillende top-level exemplaren ResourceMap die door de app worden gebruikt, die overeenkomen met de verschillende pakketten voor de app. De waarde ResourceManager.MainResourceMap komt overeen met de resourcetoewijzing voor het huidige app-pakket en sluit eventuele frameworkpakketten waarnaar wordt verwezen uit. Elk ResourceMap wordt genoemd naar de naam van het pakket dat is opgegeven in het pakketmanifest. Binnen een ResourceMap bevinden zich subbomen (zie ResourceMap.GetSubtree). De subbomen komen doorgaans overeen met de resourcebestanden waarin de bron zich bevindt.
De ResourceManager ondersteunt niet alleen access naar de tekenreeksresources van een app, maar ook de mogelijkheid om de verschillende bestandsresources op te sommen en te inspecteren. Om conflicten tussen bestanden en andere resources die afkomstig zijn van een bestand te voorkomen, bevinden geïndexeerde bestandspaden zich allemaal in een gereserveerde "Files" ResourceMap subboom. Het bestand\Images\logo.pngkomt bijvoorbeeld overeen met de resourcenaam 'Files/images/logo.png'.
De selectie van resources specificeren met ResourceContext
Resourcekandidaten worden gekozen op basis van een bepaalde ResourceContext, een verzameling resourcekwalificatiewaarden (taal, schaal, contrast, enzovoort). Een standaardcontext maakt gebruik van de huidige configuratie van de app voor elke kwalificatiewaarde, tenzij deze wordt overschreven. Resources zoals afbeeldingen kunnen bijvoorbeeld worden gekwalificeerd voor schaal, wat varieert van de ene monitor naar de andere en dus van de ene toepassingsweergave naar de andere. Daarom heeft elke toepassingsweergave een afzonderlijke standaardcontext. Wanneer u een resourcekandidaat ophaalt, moet u een ResourceContext instantie doorgeven om de meest geschikte waarde voor een gegeven weergave te verkrijgen.
Voorbeeld
Zie het MRT Core Core-voorbeeld voor een voorbeeld dat laat zien hoe u de MRT Core-API gebruikt.
Zie ook
Windows developer