Comment : utiliser un dictionnaire de ressources de portée application
Cet exemple indique comment définir et utiliser un dictionnaire de ressources personnalisé de portée application.
Exemple
Application expose un magasin de portée d'application pour les ressources partagées : Resources. Par défaut, la propriété Resources est initialisée avec une instance du type ResourceDictionary. Vous utilisez cette instance lorsque vous obtenez et définissez des propriétés de portée application à l'aide de Resources. (Pour plus d'informations, consultez Comment : obtenir et définir des ressources de portée application).
Si vous disposez des plusieurs ressources que vous définissez à l'aide de Resources, vous pouvez utiliser à la place un dictionnaire de ressources personnalisé pour stocker ces ressources et vous en servir à la place pour définir Resources. Les éléments suivants indiquent comment vous déclarez un dictionnaire de ressources personnalisé à l'aide de XAML.
<ResourceDictionary
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" >
<SolidColorBrush x:Key="StandardSolidColorBrush" Color="Blue" />
<LinearGradientBrush x:Key="StandardLinearGradientBrush" StartPoint="0.0,0.0" EndPoint="1.0,1.0">
<LinearGradientBrush.GradientStops>
<GradientStop Color="White" Offset="0" />
<GradientStop Color="Black" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</ResourceDictionary>
L'échange de dictionnaires de ressources entiers à l'aide de Resources vous permet de prendre en charge des thèmes de portée application, où chaque thème est encapsulé par un dictionnaire de ressources unique. L'exemple suivant montre comment définir ResourceDictionary.
<!--Set the Application ResourceDictionary-->
<Application.Resources>
<ResourceDictionary Source="MyResourceDictionary.xaml" />
</Application.Resources>
Les éléments suivants indiquent comment vous pouvez obtenir des ressources de portée application du dictionnaire de ressources exposé par Resources en XAML.
<!--Set the brush as a StaticResource from the ResourceDictionary-->
<Rectangle Name="Rect" Height="200" Width="100" Fill="{StaticResource ResourceKey=StandardSolidColorBrush}" />
Les éléments suivants indiquent comment vous pouvez également placer les ressources dans le code.
'Get a resource from the ResourceDictionary in code
Dim GradientBrush As Brush = Application.Current.FindResource("StandardLinearGradientBrush")
//Get a resource from the ResourceDictionary in code
Brush gradientBrush = (Brush)Application.Current.FindResource("StandardLinearGradientBrush");
Il existe deux considérations à prendre en compte lors de l'utilisation de Resources. En premier lieu, la clé de dictionnaire est un objet, donc vous devez utiliser exactement la même instance de l'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.) En second lieu, la valeur de dictionnaire est un objet, donc vous devrez convertir la valeur en type souhaité lors de l'obtention d'une valeur de propriété.