Condividi tramite


ResourceCandidate Classe

Definizione

Rappresenta un singolo valore possibile per un determinato nome NamedResource, i qualificatori associati a tale risorsa e il modo in cui tali qualificatori corrispondono al contesto a cui è stato risolto.

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
Ereditarietà
Object Platform::Object IInspectable ResourceCandidate
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

Questo esempio si basa sullo scenario 10 delle risorse dell'applicazione e dell'esempio di localizzazione. Vedere l'esempio per la soluzione 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";
}

Commenti

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1903 18362 Tipo

Proprietà

IsDefault

Indica se questa risorsaCandidate può essere usata come valore di fallback predefinito per qualsiasi contesto.

IsMatch

Indica se questa risorsaCandidate corrispondeva a ResourceContext in base alla quale è stata valutata.

IsMatchAsDefault

Indica se resourceCandidate corrispondeva a ResourceContext rispetto al quale è stata valutata come risultato di una corrispondenza vera, un valore di fallback predefinito o una corrispondenza mista con il fallback predefinito, ovvero una corrispondenza in relazione ad alcuni qualificatori, ma usando i valori di fallback predefiniti per altri qualificatori.

Kind

Ottiene il tipo di risorsa incapsulata in questa risorsaCandidate.

Qualifiers

Ottiene i qualificatori associati a resourceCandidate.

ValueAsString

Ottiene il valore di resourceCandidate, espresso come stringa.

Metodi

GetQualifierValue(String)

Restituisce il valore di un qualificatore, dato il nome.

GetValueAsFileAsync()

Restituisce in modo asincrono un file di archiviazione che accede al valore di resourceCandidate. Questo funziona solo su determinati tipi di ResourceCandidateche sono file.

GetValueAsStreamAsync()

Restituisce in modo asincrono un oggetto IRandomAccessStream che accede al valore di resourceCandidate.

Si applica a

Vedi anche