Gestionnaire de thèmes pour applications wpf

Description

Ce gestionnaire permet d'offrir à l'utilisateur la liberté de choisir son thème pour son application WPF.
Il suffit de lui proposer une combo dans l'application pour lui permettre de choisir un thème parmi une liste de thèmes disponibles, le gestionnaire se chargera de stocker son choix en fichier.config et de le charger au lancement de l'application.

Source / Exemple :


'Le gestionnaire complet se trouve dans le projet Dll WpfThemes.Core.

'Pour charger le gestionnaire au lancement de votre application, il suffit de l'appeler 
'dans le StartUp de l'Application :
Class Application
    Private Sub Application_Startup(ByVal sender As Object, 
                                    ByVal e As System.Windows.StartupEventArgs) Handles Me.Startup
        'Instanciation du thème manager pour chargement de la liste des thèmes disponibles 
        WpfThemes.Core.ThemesManagerVueModele.Instance.Init()
    End Sub
End Class

'Pour laisser le choix à l'utilisateur, il suffit d'une combo et lier son DataContext au gestionnaire :
'dans MainWindow.xaml
     <ComboBox Name="cboThemes" Width="115" Height="23" Cursor="Hand" 
               ItemsSource="{Binding Path=Themes}" SelectedItem="{Binding Path=ThemeCourant}"  />

'dans MainWindow.xaml.vb
    Private Sub MainWindow_Loaded(ByVal sender As Object, 
                                  ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
        cboThemes.DataContext = WpfThemes.Core.ThemesManagerVueModele.Instance
    End Sub

'on peut également définir un style par défaut (autre que le 1er fichier du dossier Themes) 
'dans le .config :
    <appSettings>
        <add key="ThemeDefaut" value="BureauBlue" />
    </appSettings>

'note : si vous utilisez le designer de Visual Studio pour créer vos écrans, il est interessant 
' d'avoir le thème par défaut chargé directement en ressource de l'Application :
     <Application.Resources>
         <ResourceDictionary Source="Themes\BureauBlue.xaml" />
     </Application.Resources>

Conclusion :


J'utilise les thèmes mis gracieusement à disposition sur CodePlex :
http://wpf.codeplex.com/wikipage?title=WPF%20Themes
J'y ai apporté quelques modifications, comme je l'ai expliqué dans ma source "Visualisation des thèmes WPF et ressources partagées".
Encore un grand merci à l'auteur de ces thèmes :-))

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.