Freigeben über


ResourceCandidate Klasse

Definition

Stellt einen einzelnen möglichen Wert für eine bestimmte NamedResource dar, die Qualifizierer, die dieser Ressource zugeordnet sind, und wie gut diese Qualifizierer mit dem Kontext übereinstimmen, für den sie aufgelöst wurde.

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
Vererbung
Object Platform::Object IInspectable ResourceCandidate
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

Dieses Beispiel basiert auf Szenario 10 des Anwendungsressourcen- und Lokalisierungsbeispiels. Sehen Sie sich das Beispiel für die vollständige Lösung an.

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";
}

Hinweise

Versionsverlauf

Windows-Version SDK-Version Wertschöpfung
1903 18362 Variante

Eigenschaften

IsDefault

Gibt an, ob dieser ResourceCandidate als Standardfallbackwert für jeden Kontext verwendet werden kann.

IsMatch

Gibt an, ob dieses ResourceCandidate mit dem ResourceContext übereinstimmt, mit dem er ausgewertet wurde.

IsMatchAsDefault

Gibt an, ob dieser ResourceCandidate mit dem ResourceContext übereinstimmt, für den es als Ergebnis einer true-Übereinstimmung, eines Standardfallbackwerts oder einer gemischten Übereinstimmung mit dem Standardfallback (d. h. eine Übereinstimmung in Bezug auf einige Qualifizierer, aber unter Verwendung von Standard-Fallbackwerten für andere Qualifizierer) ausgewertet wurde.

Kind

Ruft den Ressourcentyp ab, der in diesem ResourceCandidate gekapselt ist.

Qualifiers

Ruft die Qualifizierer ab, die diesem ResourceCandidate zugeordnet sind.

ValueAsString

Ruft den Wert dieses ResourceCandidate ab, der als Zeichenfolge ausgedrückt wird.

Methoden

GetQualifierValue(String)

Gibt den Wert eines Qualifizierers unter Angabe seines Namens zurück.

GetValueAsFileAsync()

Gibt asynchron eine StorageFile-Datei zurück, die auf den Wert dieses ResourceCandidate-Werts zugreift. Dies funktioniert nur für bestimmte Arten von ResourceCandidates, bei denen es sich um Dateien handelt.

GetValueAsStreamAsync()

Gibt asynchron einen IRandomAccessStream zurück, der auf den Wert dieses ResourceCandidate-Objekts zugreift.

Gilt für:

Weitere Informationen