次の方法で共有


ResourceCandidate クラス

定義

特定の NamedResource、そのリソースに関連付けられている修飾子、およびそれらの修飾子が解決されたコンテキストとどの程度一致するかについて、1 つの可能な値を表します。

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
継承
Object Platform::Object IInspectable ResourceCandidate
属性

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

この例は、 アプリケーション リソースとローカライズ サンプルのシナリオ 10 に基づいています。 完全なソリューションについては、サンプルを参照してください。

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

注釈

バージョン履歴

Windows のバージョン SDK バージョン 追加された値
1903 18362 種類

プロパティ

IsDefault

この ResourceCandidate を任意のコンテキストの既定のフォールバック値として使用できるかどうかを示します。

IsMatch

この ResourceCandidate が、評価対象の ResourceContext と一致したかどうかを示します。

IsMatchAsDefault

この ResourceCandidate が、真の一致、既定のフォールバック値、または既定のフォールバックとの混合一致 (つまり、一部の修飾子に関連するが、他の修飾子に既定のフォールバック値を使用する) の結果として評価された ResourceContext と一致したかどうかを示します。

Kind

この ResourceCandidate にカプセル化されているリソースの種類を取得します。

Qualifiers

この ResourceCandidate に関連付けられている修飾子を取得します。

ValueAsString

文字列として表されるこの ResourceCandidate の値を取得します。

メソッド

GetQualifierValue(String)

修飾子の名前を指定して、値を返します。

GetValueAsFileAsync()

この ResourceCandidate の値にアクセスする StorageFile を非同期的に返します。 これは、ファイルである特定の種類の ResourceCandidateでのみ機能します。

GetValueAsStreamAsync()

この ResourceCandidate の値にアクセスする IRandomAccessStream を非同期的に返します。

適用対象

こちらもご覧ください