Partilhar via


ResourceCandidate Classe

Definição

Representa um único valor possível para um determinado NamedResource, os qualificadores associados a esse recurso e o quão bem esses qualificadores correspondem ao contexto em relação ao qual ele foi resolvido.

public ref class ResourceCandidate sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class ResourceCandidate final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class ResourceCandidate
Public NotInheritable Class ResourceCandidate
Herança
Object Platform::Object IInspectable ResourceCandidate
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 completa.

private void Scenario10Button_Show_Click(object sender, RoutedEventArgs e)
{
    Button b = sender as Button;
    if (b != null)
    {
        // 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).
        var context = ResourceContext.GetForCurrentView().Clone();

        var selectedLanguage = Scenario10ComboBox_Language.SelectedValue;
        var selectedScale = Scenario10ComboBox_Scale.SelectedValue;
        var selectedContrast = Scenario10ComboBox_Contrast.SelectedValue;
        var selectedHomeRegion = Scenario10ComboBox_HomeRegion.SelectedValue;

        if (selectedLanguage != null)
        {
            context.QualifierValues["language"] = selectedLanguage.ToString();
        }
        if (selectedScale != null)
        {
            context.QualifierValues["scale"] = selectedScale.ToString();
        }
        if (selectedContrast != null)
        {
            context.QualifierValues["contrast"] = selectedContrast.ToString();
        }
        if (selectedHomeRegion != null)
        {
            context.QualifierValues["homeregion"] = selectedHomeRegion.ToString();
        }
        Scenario10_SearchMultipleResourceIds(context, new string[] { "LanguageOnly", "ScaleOnly", "ContrastOnly", "HomeRegionOnly", "MultiDimensional" });
    }
}

void Scenario10_SearchMultipleResourceIds(ResourceContext context, string[] resourceIds)
{
    this.Scenario10TextBlock.Text = "";
    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);
            Scenario10_ShowCandidates(id, resourceCandidates);
        }
    }
}

void Scenario10_ShowCandidates(string resourceId, IReadOnlyList<ResourceCandidate> resourceCandidates)
{
    // Print 'resourceId', 'found value', 'qualifer 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";
        int j = 0;
        foreach (var qualifier in candidate.Qualifiers)
        {
            var qualifierName = qualifier.QualifierName;
            var qualifierValue = qualifier.QualifierValue;
            outText += "        Qualifer: " + qualifierName + ": " + qualifierValue + "\r\n";
            outText += "        Matching: IsMatch (" + qualifier.IsMatch.ToString() + ")  " + "IsDefault (" + qualifier.IsDefault.ToString() + ")" + "\r\n";
            j++;
        }
        i++;
    }

    this.Scenario10TextBlock.Text += outText + "\r\n";
}

Comentários

Histórico de versão

Versão do Windows Versão do SDK Valor adicionado
1903 18362 Tipo

Propriedades

IsDefault

Indica se este ResourceCandidate pode ser usado como um valor de fallback padrão para qualquer contexto.

IsMatch

Indica se este ResourceCandidate correspondeu ao ResourceContext com o qual foi avaliado.

IsMatchAsDefault

Indica se este ResourceCandidate correspondeu ao ResourceContext com o qual foi avaliado como resultado de uma correspondência verdadeira, um valor de fallback padrão ou uma correspondência mista com o fallback padrão (ou seja, uma correspondência em relação a alguns qualificadores, mas usando valores de fallback padrão para outros qualificadores).

Kind

Obtém o tipo de recurso encapsulado neste ResourceCandidate.

Qualifiers

Obtém os qualificadores associados a este ResourceCandidate.

ValueAsString

Obtém o valor desse ResourceCandidate, expresso como uma cadeia de caracteres.

Métodos

GetQualifierValue(String)

Retorna o valor de um qualificador, considerando seu nome.

GetValueAsFileAsync()

Retorna de forma assíncrona um StorageFile que acessa o valor desse ResourceCandidate. Isso só funciona em determinados tipos de ResourceCandidates que são arquivos.

GetValueAsStreamAsync()

Retorna de forma assíncrona um IRandomAccessStream que acessa o valor desse ResourceCandidate.

Aplica-se a

Confira também