MRT Core ile kaynakları yönetme

MRT Core, modern Windows Resource Yönetim Sistemi, Windows Uygulama SDK'sı kapsamında dağıtılan kolaylaştırılmış bir sürümüdür.

MRT Core hem derleme anında hem de çalışma anında özelliklere sahiptir. Derleme zamanında sistem, uygulamanızla birlikte paketlenmiş kaynakların tüm farklı değişkenlerinden oluşan bir dizin oluşturur. Bu dizin Paket Kaynağı Dizini veya PRI'dir ve uygulamanızın paketine de eklenir.

Önkoşullar

Windows Uygulama SDK'sı MRT Core API'lerini kullanmak için:

  1. Windows Uygulama SDK'sı en son sürümünü indirin ve yükleyin. Daha fazla bilgi için bkz. WinUI 3 projesi oluşturma ve çalıştırma.
  2. WinUI 3 projesi oluşturma ve çalıştırma veya mevcut bir projede Windows Uygulama SDK'sı kullanma yönergelerini izleyin.

Windows Uygulama SDK'sı MRT Core'un kullanılabilirliği hakkında daha fazla bilgi edinmek için bkz. release channels.

Paket Kaynak Dizini (PRI) dosyası

Her uygulama paketi, uygulamadaki kaynakların ikili dizinini içermelidir. Bu dizin derleme zamanında oluşturulur ve bir veya daha fazla PRI dosyasında bulunur. Her PRI dosyası, kaynak eşlemesi olarak adlandırılan adlandırılmış bir kaynak koleksiyonu içerir.

PRI dosyası gerçek dize kaynaklarını içerir. Gömülü ikili ve dosya yolu kaynakları doğrudan proje dosyalarından dizine alınır. Bir paket genellikle her dil için resources.pri adlı tek bir PRI dosyası içerir. ResourceManager nesnesi başlatıldığında, her paketin kökündeki resources.pri dosyası otomatik olarak yüklenir.

PRI dosyaları yalnızca veri içerdiğinden taşınabilir yürütülebilir dosya (PE) biçimini kullanmaz. Bunlar özellikle yalnızca veri olacak şekilde tasarlanmıştır.

Uyarı

.NET uygulamalar için Windows Uygulama SDK'sı sürüm 0.8 ve sonraki sürümlerde, Visual Studio kaynak dosyaları için Build Action dosya özelliği otomatik olarak ayarlanır ve el ile project yapılandırması gereksinimini azaltır. Sürüm 1.0, issue 1674'ü tanıttı. Bu, kararlı kanaldaki 1.1 ile düzeltilmiştir, ancak düzeltme için .NET SDK 6.0.300 veya sonrası gereklidir. .NET SDK'sının daha düşük bir sürümünü kullanıyorsanız lütfen 1.0 sürüm notlarındaki geçici çözümü kullanmaya devam edin.

MRT Core ile uygulama kaynaklarına erişin

MRT Core, uygulama kaynaklarınıza erişim için çeşitli yollar sunar.

Uyarı

Windows Uygulama SDK'sı 1.0 Önizleme 1 ve sonraki sürümlerde MRT Core API'leri Microsoft.Windows.ApplicationModel.Resources ad alanındadır. Önceki sürümlerde Microsoft.ApplicationModel.Resources ad alanındadır.

ResourceLoader ile temel işlevsellik

Uygulama kaynaklarınızı program aracılığıyla access etmenin en basit yolu ResourceLoader sınıfını kullanmaktır. ResourceLoader, kaynak dosya seti, başvurulan kitaplıklar veya diğer paketlerden dize kaynaklarına temel erişim sunar.

ResourceManager ile gelişmiş işlevsellik

ResourceManager sınıfı, numaralandırma ve inceleme gibi kaynaklar hakkında ek bilgiler sağlar. Bu, ResourceLoader sınıfının sağladığının ötesine geçer.

ResourceCandidate nesnesi, İngilizce için "Merhaba Dünya" dizesi veya ölçek-100 çözünürlüğüne özgü nitelikli bir görüntü kaynağı olarak "logo.scale-100.jpg" gibi tek bir somut kaynak değerini ve niteleyicilerini temsil eder.

Bir uygulamanın kullanabileceği kaynaklar, hiyerarşik koleksiyonlarda depolanır ve bir ResourceMap nesnesiyle erişebilirsiniz. ResourceManager sınıfı, uygulama tarafından kullanılan ve uygulamanın çeşitli paketlerine karşılık gelen çeşitli üst düzey ResourceMap örneklerine access sağlar. ResourceManager.MainResourceMap değeri, geçerli uygulama paketinin kaynak eşlemesine karşılık gelir ve başvuruda bulunulduğu çerçeve paketlerini dışlar. Her ResourceMap , paketin bildiriminde belirtilen paket adı için adlandırılır. Bir ResourceMap içinde alt ağaçlar vardır (bkz. ResourceMap.GetSubtree). Alttreler genellikle kaynağı içeren kaynak dosyalarına karşılık gelir.

ResourceManager yalnızca bir uygulamanın dize kaynaklarına access desteklemez, aynı zamanda çeşitli dosya kaynaklarını listeleme ve inceleme özelliğini de korur. Dosya içinden gelen dosyalar ve diğer kaynaklar arasında çakışmaları önlemek için, dizine alınan tüm dosya yolları, ayrılmış "Dosyalar" adlı bir ResourceMap alt ağacında yer alır. Örneğin, '\Images\logo.png' dosyası 'Dosyalar/görüntüler/logo.png' kaynak adına karşılık gelir.

ResourceContext ile kaynak seçimini niteleme

Kaynak adayları, kaynak niteleyici değerlerinin (dil, ölçek, karşıtlık vb.) bir koleksiyonu olan belirli bir ResourceContext'e göre seçilir. Varsayılan bağlam, geçersiz kılınmadığı sürece her niteleyici değeri için uygulamanın geçerli yapılandırmasını kullanır. Örneğin, görüntüler gibi kaynaklar bir monitörden diğerine ve dolayısıyla bir uygulama görünümünden diğerine değişen ölçek için nitelenebilir. Bu nedenle, her uygulama görünümünün ayrı bir varsayılan bağlamı vardır. Ne zaman bir kaynak adayı alırsanız, belirli bir görünüm için en uygun değeri elde etmek üzere bir ResourceContext örneğini geçirmeniz gerekir.

Ayrıca yeni bir ResourceContext oluşturabilir ve eşleşen bir kaynak ararken kullanılacak dil, ölçek, karşıtlık veya diğer niteleyici hakkında açık olmak üzere niteleyici değerlerini geçersiz kılabilirsiniz. Belirli örnekler için bkz . Belirli bir dil veya başka bir bağlam için dize yükleme ve Belirli bir dil veya başka bir bağlam için görüntü yükleme.

Örnek

MRT Core API'sinin nasıl kullanılacağını gösteren bir örnek için bkz. MRT Core örneği.

Ayrıca bakınız