Compartir a través de


ResourceCandidate Clase

Definición

Representa un único valor posible para un objeto NamedResource determinado, los calificadores asociados a ese recurso y el modo en que esos calificadores coinciden con el contexto con el que se resolvió.

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
Herencia
Object Platform::Object IInspectable ResourceCandidate
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

Este ejemplo se basa en el escenario 10 de los recursos de la aplicación y el ejemplo de localización. Consulte el ejemplo de la solución 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";
}

Comentarios

Historial de versiones

Versión de Windows Versión del SDK Valor agregado
1903 18362 Clase

Propiedades

IsDefault

Indica si este resourceCandidate se puede usar como un valor de reserva predeterminado para cualquier contexto.

IsMatch

Indica si este objeto ResourceCandidate coincide con resourceContext con el que se evaluó.

IsMatchAsDefault

Indica si este ResourceCandidate coincide con resourceContext con el que se evaluó como resultado de ser una coincidencia verdadera, un valor de reserva predeterminado o una coincidencia mixta con la reserva predeterminada (es decir, una coincidencia en relación con algunos calificadores, pero usando valores de reserva predeterminados para otros calificadores).

Kind

Obtiene el tipo de recurso que está encapsulado en este resourceCandidate.

Qualifiers

Obtiene los calificadores asociados a este resourceCandidate.

ValueAsString

Obtiene el valor de resourceCandidate, expresado como una cadena.

Métodos

GetQualifierValue(String)

Devuelve el valor de un calificador, dado su nombre.

GetValueAsFileAsync()

Devuelve de forma asincrónica un storageFile que tiene acceso al valor de este resourceCandidate. Esto solo funciona en determinados tipos de ResourceCandidates que son archivos.

GetValueAsStreamAsync()

Devuelve de forma asincrónica un IRandomAccessStream que tiene acceso al valor de este ResourceCandidate.

Se aplica a

Consulte también