Application.Resources Propriété

Définition

Obtient ou définit une collection de ressources de portée application, telles que des styles et des pinceaux.Gets or sets a collection of application-scope resources, such as styles and brushes.

public:
 property System::Windows::ResourceDictionary ^ Resources { System::Windows::ResourceDictionary ^ get(); void set(System::Windows::ResourceDictionary ^ value); };
[System.Windows.Markup.Ambient]
public System.Windows.ResourceDictionary Resources { get; set; }
member this.Resources : System.Windows.ResourceDictionary with get, set
Public Property Resources As ResourceDictionary

Valeur de propriété

Objet ResourceDictionary qui contient zéro ou plusieurs ressources de portée application.A ResourceDictionary object that contains zero or more application-scope resources.

Implémente

System.Windows.Markup.IHaveResources.Resources
Attributs

Exemples

Cet exemple montre comment utiliser XAML avec les ressources de portée application pour créer une apparence visuelle cohérente.This example illustrates how to use XAML together with application-scope resources to create a consistent visual appearance. Le premier exemple provient de app. Xaml. deuxième, à partir de MainWindow. Xaml.The first example is from App.xaml; the second, from MainWindow.xaml.

<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="MainWindow.xaml"
    >

  <Application.Resources>
    <SolidColorBrush x:Key="BackgroundColor" Color="Yellow"></SolidColorBrush>
  </Application.Resources>

</Application>
<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ApplicationResourcesSnippetSample_XAML" 
    Height="300" 
    Width="300" 
    Background="{StaticResource BackgroundColor}"
    >
  <Grid>
    <!-- Additional XAML. -->
  </Grid>
</Window>

L’exemple suivant montre comment définir une ressource d’application dans le code et XAML (dans le fichier app. XAML d' C# un projet WPF ou le fichier application. xaml dans un projet WPF Visual Basic).The following example shows how to set an application resource in code and XAML (in the App.xaml file in a C# WPF project or the Application.xaml file in a Visual Basic WPF project).

// Set an application-scope resource
Application.Current.Resources["ApplicationScopeResource"] = Brushes.White;
' Set an application-scope resource
Application.Current.Resources("ApplicationScopeResource") = Brushes.White
<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.App"
    StartupUri="MainWindow.xaml" 
    Startup="App_Startup" 
    Exit="App_Exit">
    <Application.Resources>
        <SolidColorBrush x:Key="ApplicationScopeResource" Color="White"></SolidColorBrush>
    </Application.Resources>
</Application>

L’exemple suivant montre comment récupérer une ressource d’application dans le code.The following example shows how to get an application resource in code.

// Get an application-scope resource
Brush whiteBrush = (Brush)Application.Current.Resources["ApplicationScopeResource"];
' Get an application-scope resource
Dim whiteBrush As Brush = CType(Application.Current.Resources("ApplicationScopeResource"), Brush)

Remarques

La propriété Resources peut être utilisée pour partager des ressources entre les fenêtres et les éléments d’une application.The Resources property can be used to share resources across the windows and elements of an application. En outre, la propriété Resources est incluse dans le chemin de recherche de la ressource, qui est parcouru dans l’ordre suivant :Additionally, the Resources property is included in the resource lookup path, which is traversed in the following order:

  1. ÉlémentsElements

  2. WindowsWindows

  3. Application.Resources

  4. SystèmeSystem

Par conséquent, les éléments de interface utilisateur (UI)user interface (UI) peuvent être liés à des ressources de portée application.Consequently, interface utilisateur (UI)user interface (UI) elements can bind to application-scope resources. En outre, si les ressources changent, le système de ressources s’assure que les propriétés d’éléments qui sont liées à ces ressources sont automatiquement mises à jour pour refléter la modification.Additionally, if resources change, the resource system ensures that element properties which are bound to those resources are automatically updated to reflect the change.

Les ressources de portée application offrent un moyen simple de prendre en charge un thème cohérent dans votre application.Application-scope resources provide a simple way to support a consistent theme across your application. Vous pouvez facilement créer un thème dans XAMLXAML à l’aide de la balise Application.Resources.You can easily create a theme in XAMLXAML by using the Application.Resources tag. Toutefois, si votre application prend en charge plusieurs thèmes, qui peuvent contenir un grand nombre d’éléments de thème, il peut être plus facile de les gérer à l’aide d’une ResourceDictionary instance pour chaque thème.However, if your application supports multiple themes, which may contain a large number of theme elements, it might be easier to manage them using one ResourceDictionary instance for each theme. De cette façon, un nouveau thème peut être appliqué en affectant à la propriété Resources le ResourceDictionaryapproprié.In this way, a new theme can be applied by setting the Resources property to the appropriate ResourceDictionary.

Il y a deux considérations à prendre en compte lors de l’utilisation de Resources.There are two considerations to make when using Resources. Premièrement, la clé de dictionnaire est un objet. vous devez donc utiliser exactement la même instance d’objet lorsque vous définissez et obtenez une valeur de propriété (Notez que la clé respecte la casse lors de l’utilisation d’une chaîne).First, the dictionary key is an object, so you need to use exactly the same object instance when both setting and getting a property value (note that the key is case-sensitive when using a string). Deuxièmement, la valeur du dictionnaire est un objet. vous devrez donc convertir la valeur en type souhaité lors de l’obtention d’une valeur de propriété.Second, the dictionary value is an object, so you will need to convert the value to the desired type when getting a property value.

Resources est thread-safe et est disponible à partir de n’importe quel thread.Resources is thread safe and is available from any thread.

S’applique à