ResourceManager Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece acesso a mapas de recursos de aplicativo e funcionalidades de recursos mais avançadas.
public ref class ResourceManager sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ResourceManager final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ResourceManager
Public NotInheritable Class ResourceManager
- Herança
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Exemplos
Este exemplo se baseia no cenário 10 do exemplo de localização e recursos de aplicativo. Consulte o exemplo para obter a solução mais completa.
private void SearchMultipleResourceIds(string language, string scale, string contrast, string homeRegion)
{
// use a cloned context for this scenario so that qualifier values set
// in this scenario don't impact behavior in other scenarios that
// use a default context for the view (crossover effects between
// the scenarios will not be expected)
ResourceContext context = ResourceContext.GetForCurrentView().Clone();
context.QualifierValues["language"] = language;
context.QualifierValues["scale"] = scale;
context.QualifierValues["contrast"] = contrast;
context.QualifierValues["homeregion"] = homeRegion;
var resourceIds = new string[] { "LanguageOnly", "ScaleOnly", "ContrastOnly", "HomeRegionOnly", "MultiDimensional" }
var dimensionMap = ResourceManager.Current.MainResourceMap.GetSubtree("dimensions");
foreach (var id in resourceIds)
{
NamedResource namedResource;
if (dimensionMap.TryGetValue(id, out namedResource))
{
var resourceCandidates = namedResource.ResolveAll(context);
string candidateInfo = ShowCandidates(id, resourceCandidates);
}
}
Console.WriteLine(candidateInfo);
}
private string ShowCandidates(string resourceId, IReadOnlyList<ResourceCandidate> resourceCandidates)
{
// print 'resourceId', 'found value', 'qualifier info', 'matching condition'
string outText = "resourceId: dimensions\\" + resourceId + "\r\n";
int i = 0;
foreach (var candidate in resourceCandidates)
{
var value = candidate.ValueAsString;
outText += " Candidate " + i.ToString() + ":" + value + "\r\n";
foreach (var qualifier in candidate.Qualifiers)
{
var qualifierName = qualifier.QualifierName;
var qualifierValue = qualifier.QualifierValue;
outText += " Qualifier: " + qualifierName + ": " + qualifierValue + "\r\n";
outText += " Matching: IsMatch (" + qualifier.IsMatch.ToString() + ") " + "IsDefault (" + qualifier.IsDefault.ToString() + ")" + "\r\n";
}
i++;
}
return outText + "\r\n";
}
void SDKTemplate::Scenario10::Scenario10Button_Show_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
Button^ b = safe_cast<Button^>(sender);
if (b != nullptr)
{
// use a cloned context for this scenario so that qualifier values set
// in this scenario don't impact behavior in other scenarios that
// use a default context for the view (crossover effects between
// the scenarios will not be expected)
auto context = ResourceContext::GetForCurrentView()->Clone();
auto selectedLanguage = Scenario10ComboBox_Language->SelectedValue;
auto selectedScale = Scenario10ComboBox_Scale->SelectedValue;
auto selectedContrast = Scenario10ComboBox_Contrast->SelectedValue;
auto selectedHomeRegion = Scenario10ComboBox_HomeRegion->SelectedValue;
if (selectedLanguage != nullptr)
{
context->QualifierValues->Insert("language", selectedLanguage->ToString());
}
if (selectedScale != nullptr)
{
context->QualifierValues->Insert("scale", selectedScale->ToString());
}
if (selectedContrast != nullptr)
{
context->QualifierValues->Insert("contrast", selectedContrast->ToString());
}
if (selectedHomeRegion != nullptr)
{
context->QualifierValues->Insert("homeregion", selectedHomeRegion->ToString());
}
Platform::Collections::Vector<String^>^ resourceIds = ref new Platform::Collections::Vector<String^>();
resourceIds->Append("LanguageOnly");
resourceIds->Append("ScaleOnly");
resourceIds->Append("ContrastOnly");
resourceIds->Append("HomeRegionOnly");
resourceIds->Append("MultiDimensional");
Scenario10_SearchMultipleResourceIds(context, resourceIds);
}
}
void SDKTemplate::Scenario10::Scenario10_SearchMultipleResourceIds(ResourceContext^ context, Platform::Collections::Vector<String^>^ resourceIds)
{
Scenario10TextBlock->Text = "";
auto dimensionMap = ResourceManager::Current->MainResourceMap->GetSubtree("dimensions");
for (unsigned int it = 0; it < resourceIds->Size; it++)
{
String^ id = resourceIds->GetAt(it);
NamedResource^ namedResource = dimensionMap->Lookup(id);
if (namedResource)
{
auto resourceCandidates = namedResource->ResolveAll(context);
Scenario10_ShowCandidates(resourceIds->GetAt(it), resourceCandidates);
}
}
}
void SDKTemplate::Scenario10::Scenario10_ShowCandidates(String^ resourceId, Windows::Foundation::Collections::IVectorView<ResourceCandidate^>^ resourceCandidates)
{
// print 'resourceId', 'found value', 'qualifier info', 'matching condition'
String^ outText = "resourceId: dimensions\\" + resourceId + "\r\n";
for(unsigned int i =0; i < resourceCandidates->Size; i++)
{
ResourceCandidate^ candidate = resourceCandidates->GetAt(i);
auto value = candidate->ValueAsString;
outText += " Candidate " + i.ToString() + ":" + value + "\r\n";
for (unsigned int j = 0; j < candidate->Qualifiers->Size; j++)
{
auto qualifier = candidate->Qualifiers->GetAt(j);
auto qualifierName = qualifier->QualifierName;
auto qualifierValue = qualifier->QualifierValue;
outText += " Qualifier: " + qualifierName + ": " + qualifierValue + "\r\n";
outText += " Matching: IsMatch (" + qualifier->IsMatch.ToString() + ") " + "IsDefault (" + qualifier->IsDefault.ToString() + ")" + "\r\n";
}
}
this->Scenario10TextBlock->Text += outText + "\r\n";
}
Propriedades
AllResourceMaps |
Obtém um mapa de objetos ResourceMap normalmente associados aos pacotes de aplicativos, indexados pelo nome do pacote. |
Current |
Obtém o ResourceManager para o aplicativo em execução no momento. |
DefaultContext |
Obtém o ResourceContext padrão para o aplicativo em execução no momento. A menos que seja substituído explicitamente, o ResourceContext padrão é usado para determinar a representação mais apropriada de qualquer determinado recurso nomeado. Observação DefaultContext pode ser alterado ou indisponível para versões após Windows 8.1. Em vez disso, use ResourceContext.GetForCurrentView. |
MainResourceMap |
Obtém o ResourceMap associado ao pacote main do aplicativo em execução no momento. |
Métodos
GetAllNamedResourcesForPackage(String, ResourceLayoutInfo) |
Obtém uma lista de todos os recursos nomeados para um pacote de aplicativos. |
GetAllSubtreesForPackage(String, ResourceLayoutInfo) |
Obtém uma lista de todas as coleções de subárvores de recursos para um pacote de aplicativos. |
IsResourceReference(String) |
Determina se uma cadeia de caracteres fornecida corresponde ao formato de referência de recurso (um identificador de URI de cadeia de caracteres ms-resource). |
LoadPriFiles(IIterable<IStorageFile>) |
Carrega um ou mais arquivos PRI (Índice de Recursos de Pacote) e adiciona seu conteúdo ao gerenciador de recursos padrão. |
UnloadPriFiles(IIterable<IStorageFile>) |
Descarrega um ou mais arquivos PRI (Índice de Recursos de Pacote). |