Resource​Map Resource​Map Resource​Map Class

Definition

A collection of related resources, typically either for a particular app package, or a resource file for a particular package.

public sealed class ResourceMap : IResourceMap, IIterable, IMapViewpublic sealed class ResourceMap : IResourceMap, IEnumerable, IReadOnlyDictionaryPublic NotInheritable Class ResourceMap Implements IResourceMap, IEnumerable, IReadOnlyDictionary
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)

Remarks

Resource identifier syntax

Many methods of this class use resource identifiers as parameters. The resource identifier is treated as a Uniform Resource Identifier (URI) fragment, subject to Uniform Resource Identifier (URI) semantics. For example, GetValue("Caption%20") is treated as GetValue("Caption ").

Do not use "?" or "#" in resource identifiers, because they terminate the resource path evaluation. For example, "MyResource?3" is treated as "MyResource".

Collection member lists

For JavaScript, ResourceMap supports using an index to access items.

Examples

This example is based on scenario 13 of the Application resources and localization sample. See the sample for the more complete solution.

// Create a ResourceContext.
var resourceContext = new Windows.ApplicationModel.Resources.Core.ResourceContext();

// Set the specific context for lookup of resources.
var qualifierValues = resourceContext.qualifierValues;
qualifierValues["language"] = "en-US";
qualifierValues["contrast"] = "standard";
qualifierValues["scale"] = "140";
qualifierValues["homeregion"] = "021"; // Northern America

// Resources actually reside within Scenario13 Resource Map.
var resourceIds = [
    '/Scenario13/languageOnly',
    '/Scenario13/scaleOnly',
    '/Scenario13/contrastOnly',
    '/Scenario13/homeregionOnly',
    '/Scenario13/multiDimensional',
];

var output = { str: "" };
resourceIds.forEach(function (resourceId) {
    renderNamedResource(resourceId, resourceContext, output);
});

function renderNamedResource(resourceId, resourceContext, output) {
    output.str += "Resource ID " + resourceId + ":\n";
    // Lookup the resource in the mainResourceMap (the one for this package).
    var namedResource = Windows.ApplicationModel.Resources.Core.ResourceManager.current.mainResourceMap.lookup(resourceId);

    // Return a ResourceCandidateVectorView of all possible resources candidates
    // resolved against the context in order of appropriateness.
    var resourceCandidates = namedResource.resolveAll(resourceContext);

    resourceCandidates.forEach(function (candidate, index) {
        renderCandidate(candidate, index, output);
    });
    output.str += "\n";
}

function renderCandidate(candidate, index, output) {
    // Get all the various qualifiers for the candidate (such as language, scale, contrast).
    candidate.qualifiers.forEach(function (qualifier) {
        output.str += "qualifierName: " + qualifier.qualifierName + "\n";
        output.str += "qualifierValue: " + qualifier.qualifierValue + "\n";
        output.str += "isDefault: ";
        output.str += (qualifier.isDefault) ? "true\n" : "false\n";
        output.str += "isMatch: ";
        output.str += (qualifier.isMatch) ? "true\n" : "false\n";
        output.str += "score: " + qualifier.score + "\n";
        output.str += "\n";
    });
}

Properties

Item[TKey] Item[TKey] Item[TKey]

Gets the element that has the specified key in the read-only dictionary.

This member is not implemented in C++TValue this[TKey key] { get; }ReadOnly Property Item(key As TKey) As TValue
Parameters
key
TKey TKey TKey

The key to locate.

Value
TValue TValue TValue

The element that has the specified key in the read-only dictionary.

Attributes
Exceptions
System.ArgumentNullException System.ArgumentNullException System.ArgumentNullException

key is null.

System.Collections.Generic.KeyNotFoundException System.Collections.Generic.KeyNotFoundException System.Collections.Generic.KeyNotFoundException

The property is retrieved and key is not found.

Keys Keys Keys

Gets an enumerable collection that contains the keys in the read-only dictionary.

This member is not implemented in C++IEnumerable<TKey> Keys { get; }ReadOnly Property Keys As IEnumerable(Of TKey)
Value
System.Collections.Generic.IEnumerable<TKey> System.Collections.Generic.IEnumerable<TKey> System.Collections.Generic.IEnumerable<TKey>

An enumerable collection that contains the keys in the read-only dictionary.

Attributes

Size Size Size

Gets the number of resources in the map.

public unsigned short Size { get; }This member is not implemented in C#This member is not implemented in VB.Net
Value
uint uint uint

The number of resources in the map.

Attributes

Uri Uri Uri

Gets a URI that can be used to refer to this ResourceMap.

public Uri Uri { get; }public Uri Uri { get; }Public ReadOnly Property Uri As Uri
Value
Uri Uri Uri

The URI that refers to this ResourceMap.

Attributes

Values Values Values

Gets an enumerable collection that contains the values in the read-only dictionary.

This member is not implemented in C++IEnumerable<TValue> Values { get; }ReadOnly Property Values As IEnumerable(Of TValue)
Value
System.Collections.Generic.IEnumerable<TValue> System.Collections.Generic.IEnumerable<TValue> System.Collections.Generic.IEnumerable<TValue>

An enumerable collection that contains the values in the read-only dictionary.

Attributes

Methods

ContainsKey(TKey) ContainsKey(TKey) ContainsKey(TKey)

Determines whether the read-only dictionary contains an element that has the specified key.

This member is not implemented in C++bool ContainsKey(TKey key)Function ContainsKey(key As TKey) As Boolean
Parameters
key
TKey TKey TKey

The key to locate.

Returns
System.Boolean System.Boolean System.Boolean

true if the read-only dictionary contains an element that has the specified key; otherwise, false.

Attributes
Exceptions
System.ArgumentNullException System.ArgumentNullException System.ArgumentNullException

key is null.

First() First() First()

Returns an iterator to enumerate the items in the map.

public IIterator<IKeyValuePair<string, NamedResource>> First()This member is not implemented in C#This member is not implemented in VB.Net
Returns

The iterator. The current position of the iterator is index 0, or the end of the set if the map is empty.

  • The set is all NamedResource s contained within this map and all of its child maps.
  • The key is a string representing the minimally qualified resource identifier, relative to this resource map.
  • The value is the NamedResource corresponding to the key.
Attributes

GetEnumerator() GetEnumerator() GetEnumerator()

Returns an enumerator that iterates through the collection.

This member is not implemented in C++IEnumerator<T> GetEnumerator()Function GetEnumerator As IEnumerator(Of T)
Returns
System.Collections.Generic.IEnumerator<T> System.Collections.Generic.IEnumerator<T> System.Collections.Generic.IEnumerator<T>

An enumerator that can be used to iterate through the collection.

Attributes
See Also
System.Collections.Generic.IEnumerator<T>System.Collections.Generic.IEnumerator<T>System.Collections.Generic.IEnumerator<T>

GetSubtree(String) GetSubtree(String) GetSubtree(String)

Returns a ResourceMap that represents a part of another ResourceMap, typically used to access a particular resource file within an app package.

This method finds subtree, ancestor, sibling and cousin maps to this resource map, as well as top-level maps. It returns the resource map represented by a given resource map identifier, relative to this resource map. This method is typically used to make simpler references to a particular subset of resources, such as a single resource file, or a directory of files.

public ResourceMap GetSubtree(String reference)public ResourceMap GetSubtree(String reference)Public Function GetSubtree(reference As String) As ResourceMap
Parameters
reference
System.String System.String System.String

A resource map identifier that identifies the root of the new subtree. For details, see the remarks for ResourceMap class.

Returns
Attributes

GetValue(String) GetValue(String) GetValue(String)

Note

GetValue(String) may be altered or unavailable for releases after Windows 8.1. Instead, use GetValue(String, ResourceContext).

Returns the most appropriate candidate for a resource that is specified by a resource identifier within the default context.

public ResourceCandidate GetValue(String resource)public ResourceCandidate GetValue(String resource)Public Function GetValue(resource As String) As ResourceCandidate
Parameters
resource
System.String System.String System.String

A resource identifier specified as a name or reference. For details, see the remarks for ResourceMap class.

Returns

A ResourceCandidate that describes the most appropriate candidate.

Attributes

GetValue(String, ResourceContext) GetValue(String, ResourceContext) GetValue(String, ResourceContext)

Returns the most appropriate candidate for a resource that is specified by a resource identifier for the supplied context.

public ResourceCandidate GetValue(String resource, ResourceContext context)public ResourceCandidate GetValue(String resource, ResourceContext context)Public Function GetValue(resource As String, context As ResourceContext) As ResourceCandidate
Parameters
resource
System.String System.String System.String

A resource specified as a name or reference. For details, see the remarks for ResourceMap class.

context
ResourceContext ResourceContext ResourceContext

The context for which to select the most appropriate candidate.

Returns

A ResourceCandidate that describes the most appropriate candidate.

Attributes

Remarks

Some resources are loaded according to the scale of the view where they will be displayed, and different views within an app might be displayed on different devices with different scales. Scale is a per-view characteristic.

Since the GetValue method selects the best candidate for the specified resource in relation to a runtime context, and since the scale qualifier of a ResourceContext depends on the associated view, GetValue should always be called with a ResourceContext object obtained from the view in which the resource will be used. Call ResourceContext.GetForCurrentView to retrieve the appropriate ResourceContext.

HasKey(String) HasKey(String) HasKey(String)

Determines whether the map can retrieve a resource with the specified resource identifier.

public PlatForm::Boolean HasKey(String key)This member is not implemented in C#This member is not implemented in VB.Net
Parameters
key
System.String System.String System.String

The resource identifier to locate in the map. For syntax details, see the remarks for ResourceMap class.

Returns
bool bool bool

TRUE if the key is found, otherwise FALSE.

Attributes

Lookup(String) Lookup(String) Lookup(String)

Returns the NamedResource at the specified resource identifier in the map.

public NamedResource Lookup(String key)This member is not implemented in C#This member is not implemented in VB.Net
Parameters
key
System.String System.String System.String

The resource identifier to use to locate the resource in the map. For syntax details, see the remarks for ResourceMap class.

Returns

The value, if an item with the specified key exists. Use the HasKey method to determine whether the key exists.

Attributes

Split(IMapView<String, NamedResource>, IMapView<String, NamedResource>) Split(IMapView<String, NamedResource>, IMapView<String, NamedResource>) Split(IMapView<String, NamedResource>, IMapView<String, NamedResource>)

Splits the map view into two views.

public void Split(IMapView<String, NamedResource> first, IMapView<String, NamedResource> second)This member is not implemented in C#This member is not implemented in VB.Net
Parameters
first

One half of the original map.

second

The second half of the original map.

Attributes

Remarks

The two views that result from the split operation might not contain the same number of items. The two views do not overlap.

If a view can't be split, then both the first and second parameter are NULL.

TryGetValue(TKey, out TValue) TryGetValue(TKey, out TValue) TryGetValue(TKey, out TValue)

Gets the value that is associated with the specified key.

This member is not implemented in C++bool TryGetValue(TKey key, out TValue value)Function TryGetValue(key As TKey, ByRef value As TValue) As Boolean
Parameters
key
TKey TKey TKey

The key to locate.

value
TValue TValue TValue

When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter. This parameter is passed uninitialized.

Returns
System.Boolean System.Boolean System.Boolean

true if the object that implements the System.Collections.Generic.IReadOnlyDictionary`2 interface contains an element that has the specified key; otherwise, false.

Attributes
Exceptions
System.ArgumentNullException System.ArgumentNullException System.ArgumentNullException

key is null.

See Also