Application.Resources Propriété

Définition

Obtient une collection de ressources étendues à l’application, telles que des styles, des modèles et des pinceaux.

ResourceDictionary Resources();

void Resources(ResourceDictionary value);
public ResourceDictionary Resources { get; set; }
var resourceDictionary = application.resources;
application.resources = resourceDictionary;
Public Property Resources As ResourceDictionary
<Application>
  <Application.Resources>
    oneOrMoreResourceElements
  </Application.Resources>
</Application>
 

Valeur de propriété

Objet ResourceDictionary qui contient au moins une ou plusieurs ressources étendues à l’application.

Exemples

Cet exemple montre comment déclarer une ressource spécifique à l’application (celle-ci crée une classe de conversion commune instance qui provient des modèles de démarrage). Ensuite, il ajoute un élément de propriété Application.MergedDictionaries avec des éléments ResourceDictionary dans, chacun référençant un fichier XAML par URI comme source.

<Application.Resources>
    <ResourceDictionary>
      <common:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/> 
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="rd1.xaml" />
        <ResourceDictionary Source="rd2.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>

Remarques

Le modèle de dictionnaire de ressources dans le Windows Runtime prend en charge de nombreux concepts de ressources XAML que vous connaissez peut-être si vous avez créé des applications à l’aide de Windows Presentation Foundation (WPF) ou de Microsoft Silverlight. Pour plus d’informations, consultez ResourceDictionary et références de ressources XAML.

Les ressources que vous définissez dans le ResourceDictionary qui remplit l’élément Application.Resources property sont disponibles pour la récupération à partir de n’importe quelle page de votre application. Cela est avantageux si la plupart des pages de votre application utilisent toutes la même ressource. Par exemple, si vous disposez d’une ressource SolidColorBrush que vous utilisez pour les jeux de couleurs dans l’interface utilisateur de votre application, et que cette couleur est utilisée sur la plupart de vos pages, il est judicieux de déclarer que SolidColorBrush dans le Application.Resources utilisé pour Application.Resources.

Lorsque vous ajoutez des ressources à Application.Resources, ajoutez-les avant ou après tout élément existant ResourceDictionary.MergedResources. Les règles xaml ne vous permettent pas de placer du contenu des deux côtés d’une balise d’élément de propriété. Pour plus d’informations, consultez guide de syntaxe XAML.

Remarques pour les versions précédentes

Optimisation du chargement des ressources dans Windows 8.1

À compter de Windows 8.1, il existe une optimisation du chargement des ressources activée par le modèle d’application et l’analyseur XAML Windows Runtime. Par Windows 8, l’analyseur XAML a chargé des ressources à partir de app.xaml et a créé chacune d’entre elles en tant qu’objets dans le cadre du démarrage. Ce n’était pas très efficace s’il y avait de grands dictionnaires là-bas. De plus, ces ressources comprenaient les éléments nécessaires aux trois thèmes, et deux des trois thèmes ne seraient même pas actifs. À compter de Windows 8.1, l’analyseur XAML crée les ressources uniquement lorsqu’elles sont spécifiquement demandées. La demande peut provenir d’autres ressources ou de XAML d’application ou de page au fur et à mesure que chacune d’elles est chargée. Ce comportement de l’analyseur réduit le temps nécessaire pour lire le dictionnaire au niveau de l’application au démarrage et permet à la première page d’application de se charger plus rapidement dans la plupart des cas. Les ressources nécessaires à d’autres thèmes actuellement inactifs ne sont chargées que si ce thème est choisi pour devenir le thème actif par l’utilisateur. À ce moment-là, toute ressource dans laquelle l’extension de balisage {ThemeResource} a été utilisée pour la requête est recalculée en fonction du thème nouvellement actif.

Comportement de Windows 8

Windows 8 n’avait pas les optimisations décrites ci-dessus. Le ResourceDictionary pour Application.Resources devait terminer l’analyse avant qu’une page autre que l’écran de démarrage puisse se charger dans la fenêtre de l’application. Pour cette raison, vous pouvez voir des différences dans le moment où vous reciblez votre application pour Windows 8.1. L’application doit se charger plus rapidement, mais il peut ne pas être possible d’isoler cette amélioration par rapport aux autres modifications que vous avez apportées au code de votre application dans le cadre du reciblage. Certains des endroits où vous pouvez voir des preuves de changements de minutage en raison du chargement optimisé des ressources incluent lorsque les constructeurs sont appelés par l’analyseur, pour des objets tels que des objets Application , des convertisseurs ou d’autres classes personnalisées. Les applications qui ont été compilées pour Windows 8, mais qui sont exécutées dans Windows 8.1, continuent d’appliquer le comportement Windows 8.

Pour plus d’informations sur les performances et la factoring des ressources XAML, consultez Optimiser votre balisage XAML.

S’applique à

Voir aussi