Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
MRT Core to usprawniona wersja nowoczesnego systemu Windows Resource Management System , który jest dystrybuowany jako część zestawu SDK aplikacji systemu Windows.
Platforma MRT Core posiada funkcje dotyczące kompilacji i wykonywania. W czasie kompilacji system tworzy indeks wszystkich różnych wariantów zasobów spakowanych razem z aplikacją. Ten indeks jest Indeksem Zasobów Pakietu, czyli PRI, i jest również zawarty w pakiecie Twojej aplikacji.
Wymagania wstępne
Aby używać interfejsów API MRT Core w zestawie SDK aplikacji systemu Windows:
- Pobierz i zainstaluj najnowszą wersję zestawu SDK aplikacji systemu Windows. Aby uzyskać więcej informacji, zobacz Wprowadzenie do interfejsu WinUI.
- Postępuj zgodnie z instrukcjami, aby utworzyć pierwszy projekt WinUI 3 lub użyć Windows App SDK w istniejącym projekcie.
Aby dowiedzieć się więcej o dostępności MRT Core w Windows App SDK, zobacz kanały wydania .
Plik indeksu zasobów pakietu (PRI)
Każdy pakiet aplikacji powinien zawierać binarny indeks zasobów w aplikacji. Ten indeks jest tworzony w czasie kompilacji i znajduje się w co najmniej jednym pliku PRI. Każdy plik PRI zawiera nazwaną kolekcję zasobów, nazywaną mapą zasobów.
Plik PRI zawiera rzeczywiste zasoby ciągów. Osadzone zasoby plików binarnych i ścieżek plików są indeksowane bezpośrednio z plików projektu. Pakiet zazwyczaj zawiera jeden plik PRI na język o nazwie resources.pri. Plik
Pliki PRI zawierają tylko dane, więc nie używają formatu przenośnego pliku wykonywalnego (PE). Są one specjalnie zaprojektowane wyłącznie do przesyłania danych.
Uwaga / Notatka
W przypadku aplikacji .NET w zestawie SDK aplikacji systemu Windows w wersji 0.8 lub nowszej właściwość akcja kompilacji pliku dla plików zasobów w programie Visual Studio jest ustawiana automatycznie, co zmniejsza potrzebę ręcznej konfiguracji projektu. W wersji 1.0 wprowadzono problem 1674. Jest to naprawione w wersji 1.1 (kanał stabilny), ale poprawka wymaga pakietu .NET SDK 6.0.300 lub nowszego. Jeśli używasz starszej wersji zestawu .NET SDK, proszę kontynuuj używanie obejścia opisanego w informacjach o wersji 1.0.
Uzyskiwanie dostępu do zasobów aplikacji za pomocą narzędzia MRT Core
Narzędzie MRT Core zapewnia kilka różnych sposobów uzyskiwania dostępu do zasobów aplikacji.
Uwaga / Notatka
W wersjach Windows App SDK 1.0 Preview 1 i nowszych interfejsy API platformy MRT Core znajdują się w Microsoft.Windows.ApplicationModel.Resources przestrzeni nazw. We wcześniejszych wersjach znajdują się one w przestrzeni nazw Microsoft.ApplicationModel.Resources .
Podstawowe funkcje za pomocą modułu ResourceLoader
Najprostszym sposobem programowego uzyskiwania dostępu do zasobów aplikacji jest użycie klasy ResourceLoader . ResourceLoader zapewnia podstawowy dostęp do zasobów tekstowych z zestawu plików zasobów, przywołanych bibliotek lub innych pakietów.
Zaawansowane funkcje za pomocą usługi ResourceManager
Klasa ResourceManager udostępnia dodatkowe informacje o zasobach, takich jak wyliczenie i inspekcja. Wykracza to poza to, co zapewnia klasa ResourceLoader .
Obiekt ResourceCandidate reprezentuje pojedynczą konkretną wartość zasobu i jego kwalifikatory, takie jak ciąg "Hello World" dla języka angielskiego lub "logo.scale-100.jpg" jako kwalifikowany zasób obrazu specyficzny dla rozdzielczości scale-100.
Zasoby dostępne dla aplikacji są przechowywane w kolekcjach hierarchicznych, do których można uzyskać dostęp za pomocą obiektu ResourceMap . Klasa ResourceManager zapewnia dostęp do różnych instancji ResourceMap najwyższego poziomu używane przez aplikację, które odpowiadają różnym pakietom aplikacji. Wartość ResourceManager.MainResourceMap odpowiada mapie zasobów dla bieżącego pakietu aplikacji i wyklucza wszystkie odwołane pakiety frameworka. Każda ResourceMap jest nazwana na podstawie nazwy pakietu określonej w manifeście tego pakietu. W ResourceMap znajdują się poddrzewa (zobacz ResourceMap.GetSubtree). Poddrzewa zazwyczaj odpowiadają plikom zasobów zawierającym zasób.
Menedżer zasobów nie tylko obsługuje dostęp do zasobów ciągów aplikacji, ale także utrzymuje możliwość wyliczania i sprawdzania różnych zasobów plików. Aby uniknąć kolizji między plikami i innymi zasobami pochodzącymi z wnętrza pliku, wszystkie indeksowane ścieżki plików znajdują się w zastrzeżonym poddrzewie "Files" ResourceMap. Na przykład plik "\Images\logo.png" odpowiada nazwie zasobu "Files/images/logo.png".
Kwalifikowanie wyboru zasobów za pomocą elementu ResourceContext
Kandydaci do zasobów są wybierani w oparciu o określony ResourceContext, który jest zbiorem wartości kwalifikatorów zasobów (język, skala, kontrast itd.). Domyślny kontekst używa aktualnych ustawień aplikacji dla każdej wartości kwalifikatora, chyba że zostaną one zastąpione innymi wartościami. Na przykład zasoby, takie jak obrazy, można zakwalifikować do skalowania, co różni się od jednego monitora do innego, a tym samym z jednego widoku aplikacji do drugiego. Z tego powodu każdy widok aplikacji ma odrębny kontekst domyślny. Za każdym razem, gdy pobierasz kandydata na zasób, powinieneś przekazywać instancję ResourceContext, aby uzyskać najbardziej odpowiednią wartość dla danego widoku.
Przykład
Przykład przedstawiający sposób korzystania z interfejsu API MRT Core można znaleźć w przykładzie MRT Core.
Zobacz także
Windows developer