Prenons le cas d'une couleur utilisée dans toute l'application. Cette couleur peut être, par exemple la couleur principale d'une marque. Si on utilise pas de ressource d'application, il faut changer toutes les couleurs de toutes les pages une par une. Pas très pratique!
Définir une ressource dans l'App.xaml
Les ressources d'application sont dans le fichier app.xaml. A noter qu'il est égallement possible de définir des ressources pour une page uniquement. A ce moment là, la ressources est définie dans les ressources locales de la page.Dans le fichier app.xaml, il faut repérer les balises "Application.Resources":
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml"
>
<Application.Resources>
</Application.Resources>
</Application>
On peut alors ajouter notre couleur utilisée dans toute l'application (MyColor):
<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="MyColor" Color="Blue"></SolidColorBrush>
</Application.Resources>
</Application>
Utiliser la ressource dans le XAML
Une foi la ressource définie pour toute l'application, il est simple de l'utiliser dans du XAML. Par exemple, si la couleur est utilisée pour changer la couleur de backgroud d'un contrôle, il suffira d'écrire:... Background="{StaticResource BackgroundColor}" ...
Utiliser la ressource dans du code C#
Nous allons maintenant voir comment utiliser cette ressource dans du code. Rien de plus simple, toutes les ressources sont disponible dans le dictionnaire de ressources. La récupération de la ressource dans le dictionnaire se fait par l'intermédiaire de la "Key" définie dans la ressource.Dans notre exemple, on pourra récupérer la ressource de la manière suivante:
Brush MyBrush = Application.Current.Resources["MyColor"] as Brush;
Aucun commentaire:
Enregistrer un commentaire