ResourceDictionary Class

Définit un dictionnaire qui contient les ressources utilisées par les composants de l'application. Ce dictionnaire est orienté vers la définition des ressources en langage XAML, puis leur récupération au moyen des références XAML via l'extension de balisage StaticResource. Vous pouvez accéder aux ressources en parcourant le dictionnaire au moment de l'exécution.

Héritage

Object
  DependencyObject
    ResourceDictionary

Syntaxe


public class ResourceDictionary : DependencyObject,
    IDictionary<Object, Object>,
    IEnumerable<KeyValuePair>


<ResourceDictionary>
  oneOrMoreResources
</ResourceDictionary>


<frameworkElement>
  <frameworkElement.Resources>
    oneOrMoreResources
  </frameworkElement.Resources>
</frameworkElement>

XAML Values

oneOrMoreResources

Un ou plusieurs éléments objet qui prennent en charge la syntaxe de création d'élément objet XAML et qui sont destinés à être référencés comme ressources indexées. Chaque ressource que vous spécifiez doit avoir une valeur unique comme clé.

Attributs

MarshalingBehaviorAttribute(Agile)
ThreadingAttribute(Both)
VersionAttribute(NTDDI_WIN8)
WebHostHiddenAttribute()

Membres

ResourceDictionaryClasse comporte les types de membres suivants :

Constructeurs

ResourceDictionaryClasse comporte les constructeurs suivants.

ConstructeurDescription
ResourceDictionary Initializes a new instance of the ResourceDictionary class.

 

Méthodes

The ResourceDictionary Classe comporte les méthodes suivantes. Il hérite également des méthodes de Object Classe.

MéthodeDescription
Add(KeyValuePair) [C#, VB]Adds a new key-value pair to the ResourceDictionary.
Add(Object) [C#, VB]Adds an item to the ResourceDictionary.
Clear Removes all items from this ResourceDictionary.
ClearValue Clears the local value of a dependency property. (Hérité de DependencyObject)
Contains [C#, VB]Returns a value that indicates whether a specified key-value pair exists in the ResourceDictionary.
ContainsKey [C#, VB]Returns a value that indicates whether a specified key exists in the ResourceDictionary.
CopyTo [C#, VB]Copies the elements of the collection to an array, starting at a particular array index.
First [C++]Returns an iterator for the items in the collection.
GetAnimationBaseValue Returns any base value established for a dependency property, which would apply in cases where an animation is not active. (Hérité de DependencyObject)
GetValue Returns the current effective value of a dependency property from a DependencyObject. (Hérité de DependencyObject)
GetView [C++]Retrieves a view against the ResourceDictionary.
HasKey [C++]Returns whether the ResourceDictionary has an entry with the requested key.
Insert [C++]Adds a new entry to the ResourceDictionary.
Lookup [C++]Returns the value from the requested key, if an entry with that key exists.
ReadLocalValue Returns the local value of a dependency property, if a local value is set. (Hérité de DependencyObject)
Remove [C++]Removes a specific item from the ResourceDictionary.
Remove(KeyValuePair) [C#, VB]Removes a specific key-value pair from the ResourceDictionary.
Remove(Object) [C#, VB]Removes a specific item from the ResourceDictionary.
SetValue Sets the local value of a dependency property on a DependencyObject. (Hérité de DependencyObject)
TryGetValue [C#, VB]Returns a value that indicates whether a specified key exists in the ResourceDictionary. If an item with that key exists, the item is retrieved as an out parameter.

 

Propriétés

Le ResourceDictionaryClasse contient les propriétés suivantes.

PropriétéType d’accèsDescription

Count [C#, VB]

en lecture seuleGets the number of elements contained in the collection.

Dispatcher

en lecture seuleGets the CoreDispatcher that this object is associated with. (Hérité de DependencyObject)

IsReadOnly [C#, VB]

en lecture seuleGets a value indicating whether the dictionary is read-only.

Item [C#, VB]

en lecture/écritureGets or sets the element value at the specified key index.

Keys [C#, VB]

en lecture seuleGets an ICollection object containing the keys of the ResourceDictionary.

MergedDictionaries

en lecture seuleGets a collection of the ResourceDictionary dictionaries that constitute the various resource dictionaries in the merged dictionaries.

Size [C++]

en lecture seuleGets the number of elements contained in the collection.

Source

en lecture/écritureGets or sets a Uniform Resource Identifier (URI) that provides the source location of a merged resource dictionary.

ThemeDictionaries

en lecture seuleGets a collection of merged resource dictionaries that are specifically keyed and composed to address theme scenarios, for example supplying theme values for HighContrast.

Values [C#, VB]

en lecture seuleGets an ICollection object containing the values of the ResourceDictionary .

 

Remarques

Les dictionnaires de ressources sont à la base une fonctionnalité orientée XAML, et les utilisations XAML de ResourceDictionary sont plus courantes que les utilisations de code. La définition de ressources indexées dans le balisage XAML, référencées ultérieurement comme modèles ou ressources supplémentaires requises par ces modèles, est l'un des principaux scénarios de développement d'interface utilisateur XAML.

En mode XAML, les clés des éléments ResourceDictionary sont déclarées en définissant l'attribut x:Key. Dans la plupart des cas, la tentative d'ajout d'un élément enfant pour un objet ResourceDictionary qui ne possède pas de valeur de clé lève une exception d'analyse ou une exception runtime, et peut également être notée comme un avertissement par les aires de conception XAML.

Toutefois, les dictionnaires de MergedDictionaries ne requièrent pas (et ne doivent pas) de clé. Les dictionnaires fusionnés ne sont pas techniquement des éléments de la collection principale, mais sont stockés dans une collection de dictionnaires fusionnés distincts.

Autre cas où une clé explicite peut être omis lorsque Style peut utiliser son TargetType comme clé implicite. Toutefois, cette utilisation sans clé fonctionne uniquement dans le contexte des modèles et des thèmes définis pour un contrôle.

Visual Studio fournit une page Ajouter un nouvel élément pour choisir un dictionnaire de ressources. Utilisez cette option lorsque vous souhaitez définir un nouveau dictionnaire de ressources XAML libre, par exemple pour servir de source à un dictionnaire fusionné. Visual Studio ajoute également un dictionnaire de ressources XAML libre au projet lorsque vous utilisez Ajouter un nouvel élément pour créer un contrôle basé sur un modèle. Ce dictionnaire de ressources fournit les modèles de thème par défaut.

Remarques sur la syntaxe XAML

Notez que la syntaxe XAML de collection implicite pour ResourceDictionary n'inclut pas d'élément objet pour ResourceDictionary. C'est un exemple de syntaxe de collection implicite XAML ; une balise qui représente l'élément de collection peut être omise. Les éléments ajoutés comme éléments à la collection sont spécifiés en tant qu'éléments enfants d'un élément de propriété d'une propriété dont le type sous-jacent prend en charge une méthode Add de dictionnaire/mappage.

Pour un dictionnaire de ressources fusionné, vous devez déclarer explicitement un élément objet ResourceDictionary afin que vous puissiez également déclarer l'élément de propriété ResourceDictionary.MergedDictionaries. Il existe un minimum de deux éléments objet ResourceDictionary impliqués et vous devez utiliser cette syntaxe.


<ResourceDictionary>
  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="uri" />
    ...
  </ResourceDictionary.MergedDictionaries>
...
</ResourceDictionary>

Dans cette syntaxe, le ResourceDictionary externe est le ResourceDictionary principal. Le ResourceDictionary interne est le ResourceDictionary en cours de fusion.

Pour l'utilisation de collection implicite, l'espace réservé approprié pour la propriété FrameworkElement.Resources est affiché. Vous pouvez également recourir à cette utilisation implicite de collection pour la propriété Application.Resources, ou potentiellement pour une propriété personnalisée qui utilise ResourceDictionary comme type de propriété.

Types partageables et types UIElement

Un dictionnaire de ressources est une technique permettant de définir des types partageables et les valeurs de ces types en XAML. Tous les types ou valeurs ne sont pas utilisables à partir d'un ResourceDictionary. Cependant, les exemples de types où le partage est pris en charge incluent Style, une sous-classe FrameworkTemplate, des types de données XAML intrinsèques, des pinceaux, des couleurs et des transformations. Pour plus d'informations sur les types considérés comme partageables, consultez Références ResourceDictionary et StaticResource. En général, les types dérivés de UIElement ne sont pas partageables, sauf s'ils proviennent de modèles et d'une application d'un modèle sur une instance de contrôle spécifique. À l'exception du cas du modèle, un UIElement est supposé exister à un seul emplacement dans une arborescence d'objets après son instanciation, et le fait de disposer d'un UIElement partageable contrevient potentiellement à ce principe.

Configuration requise

Client minimal pris en charge

Windows 8 [Applications du Windows Store uniquement]

Serveur minimal pris en charge

Windows Server 2012 [Applications du Windows Store uniquement]

Espace de noms

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Métadonnées

Windows.winmd

Voir aussi

DependencyObject
IMap(Object, Object)
IIterable(IKeyValuePair)
Références ResourceDictionary et StaticResource
Exemple de ressources et de localisation d'application

 

 

Afficher:
© 2014 Microsoft