Mengelola sumber daya dengan MRT Core

MRT Core adalah versi sederhana dari Sistem Manajemen Sumber Daya Windows modern yang didistribusikan sebagai bagian dari SDK Aplikasi Windows.

MRT Core memiliki fitur build-time dan run-time. Pada waktu build, sistem membuat indeks dari semua varian sumber daya yang berbeda yang dipaketkan dengan aplikasi Anda. Indeks ini adalah Indeks Sumber Daya Paket, atau PRI, dan juga disertakan dalam paket aplikasi Anda.

Prasyarat

Untuk menggunakan API MRT Core di SDK Aplikasi Windows:

  1. Unduh dan instal rilis terbaru SDK Aplikasi Windows. Untuk informasi selengkapnya, lihat Menginstal alat untuk SDK Aplikasi Windows.
  2. Ikuti instruksi untuk Membuat proyek WinUI 3 pertama Anda atau menggunakan SDK Aplikasi Windows dalam proyek yang ada.

Untuk mempelajari selengkapnya tentang ketersediaan MRT Core di SDK Aplikasi Windows, lihat saluran rilis.

File Indeks Sumber Daya Paket (PRI)

Setiap paket aplikasi harus berisi indeks biner sumber daya di aplikasi. Indeks ini dibuat pada waktu build dan terkandung dalam satu atau beberapa file PRI. Setiap file PRI berisi kumpulan sumber daya bernama, yang disebut sebagai peta sumber daya.

File PRI berisi sumber daya string aktual. Sumber daya biner dan jalur file yang disematkan diindeks langsung dari file proyek. Paket biasanya berisi satu file PRI per bahasa, bernama resources.pri. File resources.pri di akar setiap paket secara otomatis dimuat saat objek ResourceManager dibuat.

File PRI hanya berisi data, sehingga tidak menggunakan format portable executable (PE). Mereka dirancang khusus untuk menjadi data saja.

Catatan

Untuk aplikasi .NET, di SDK Aplikasi Windows versi 0.8 dan seterusnya, properti file Build Action untuk file sumber daya di Visual Studio diatur secara otomatis, mengurangi kebutuhan akan konfigurasi proyek manual. Versi 1.0 memperkenalkan masalah 1674. Ini diperbaiki di 1.1 (dari saluran stabil), tetapi perbaikan memerlukan .NET SDK 6.0.300 atau yang lebih baru. Jika Anda menggunakan versi .NET SDK yang lebih rendah, silakan terus gunakan solusinya dalam catatan rilis 1.0.

Mengakses sumber daya aplikasi dengan MRT Core

MRT Core menyediakan beberapa cara berbeda untuk mengakses sumber daya aplikasi Anda.

Catatan

Dalam SDK Aplikasi Windows 1.0 Pratinjau 1 dan rilis yang lebih baru, MRT Core API berada di namespace Microsoft.Windows.ApplicationModel.Resources. Dalam rilis sebelumnya, mereka berada di namespace Microsoft.ApplicationModel.Resources .

Fungsionalitas dasar dengan ResourceLoader

Cara paling sederhana untuk mengakses sumber daya aplikasi Anda secara terprogram adalah dengan menggunakan kelas ResourceLoader . ResourceLoader memberi Anda akses dasar ke sumber daya string dari kumpulan file sumber daya, pustaka yang direferensikan, atau paket lainnya.

Fungsionalitas tingkat lanjut dengan ResourceManager

Kelas ResourceManager menyediakan info tambahan tentang sumber daya, seperti enumerasi dan inspeksi. Ini melampaui apa yang disediakan kelas ResourceLoader .

Objek ResourceCandidate mewakili satu nilai sumber daya konkret dan kualifikasinya, seperti string "Halo Dunia" untuk bahasa Inggris, atau "logo.scale-100.jpg" sebagai sumber daya gambar yang memenuhi syarat yang khusus untuk resolusi scale-100.

Sumber daya yang tersedia untuk aplikasi disimpan dalam koleksi hierarkis, yang dapat Anda akses dengan objek ResourceMap . Kelas ResourceManager menyediakan akses ke berbagai instans ResourceMap tingkat atas yang digunakan oleh aplikasi, yang sesuai dengan berbagai paket untuk aplikasi. Nilai ResourceManager.MainResourceMap sesuai dengan peta sumber daya untuk paket aplikasi saat ini, dan mengecualikan paket kerangka kerja yang direferensikan. Setiap ResourceMap dinamai untuk nama paket yang ditentukan dalam manifes paket. Dalam ResourceMap adalah subtrees (lihat ResourceMap.GetSubtree). Subtrees biasanya sesuai dengan file sumber daya yang berisi sumber daya.

ResourceManager tidak hanya mendukung akses ke sumber daya string aplikasi, tetapi juga mempertahankan kemampuan untuk menghitung dan memeriksa berbagai sumber daya file juga. Untuk menghindari tabrakan antara file dan sumber daya lain yang berasal dari dalam file, jalur file terindeks semuanya berada dalam subtree ResourceMap "File" yang dicadangkan. Misalnya, file '\Images\logo.png' sesuai dengan nama sumber daya 'Files/images/logo.png'.

Memenuhi syarat pemilihan sumber daya dengan ResourceContext

Kandidat sumber daya dipilih berdasarkan ResourceContext tertentu, yang merupakan kumpulan nilai kualifikasi sumber daya (bahasa, skala, kontras, dan sebagainya). Konteks default menggunakan konfigurasi aplikasi saat ini untuk setiap nilai kualifikasi, kecuali ditimpa. Misalnya, sumber daya seperti gambar dapat memenuhi syarat untuk skala, yang bervariasi dari satu monitor ke monitor lain dan karenanya dari satu tampilan aplikasi ke tampilan aplikasi lainnya. Untuk alasan ini, setiap tampilan aplikasi memiliki konteks default yang berbeda. Setiap kali Anda mengambil kandidat sumber daya, Anda harus meneruskan instans ResourceContext untuk mendapatkan nilai yang paling tepat untuk tampilan tertentu.

Sampel

Untuk sampel yang menunjukkan cara menggunakan MRT Core API, lihat sampel MRT Core.

Lihat juga