Avec WPF 4, il est désormais possible de personnaliser le comportement de la taskbar ou barre des tâches lorsque votre application est en cours d'exécution.
Dans la
MSDN, on trouve cette image décrivant très bien les différents éléments de l'aperçu d'une application dans la taskbar :

Pour personnaliser la plupart de ces éléments, il faut rajouter tout d'abord dans le code XAML de votre interface le code suivant :
1 2 3 4 5 | <Window.TaskbarItemInfo> <TaskbarItemInfo>
</TaskbarItemInfo> </Window.TaskbarItemInfo> |
TaskbarItemInfo est l'élément qui va nous permettre d'accéder à toutes les propriétés concernant notre application dans la taskbar. Voici les propriétés proposées :

Et ce que l'on peut obtenir avec ces propriétés :
- Description : pour changer la description de l'application.
- Overlay : pour ajouter une image dans l'icône présente dans la barre des tâches.
- ProgressState : pour changer l'état de la barre de progression.
- ProgressValue : pour donner une valeur à l'avancé de la barre de progression.
- ThumbButtonInfos : pour ajouter des boutons.
- ThumbnailClipMargin : pour modifier les marges de la miniature dans l'aperçu de l'application.
Aujourd'hui nous allons nous concentrer sur les boutons. On souhaite pouvoir contrôler l'application depuis trois boutons présents dans l'aperçu de l'application de la barre des tâches. Voici l'exemple que l'on cherche à avoir (pour ceux qui étaient présents à la session Coding for Fun des Techdays 2010,
Mitsu pouvait jouer avec son Tetris grâce à des boutons dans l'aperçu

) :

L'application est composée de deux boutons, permettant chacun d'afficher un message via un MessageBox. On souhaite pouvoir afficher ces messages depuis la taskbar, et aussi pouvoir quitter l'application avec le troisième bouton.
Voici le code pour ajouter les boutons dans l'aperçu de la taskbar :
1 2 3 4 5 6 7 8 9 | <Window.TaskbarItemInfo> <TaskbarItemInfo> <TaskbarItemInfo.ThumbButtonInfos> <ThumbButtonInfo Description="Hello" ImageSource="office1.ico" /> <ThumbButtonInfo Description="Goodbye" ImageSource="office2.ico" /> <ThumbButtonInfo Description="Close" ImageSource="office3.ico" /> </TaskbarItemInfo.ThumbButtonInfos> </TaskbarItemInfo> </Window.TaskbarItemInfo> |
La balise
TaskbarItemInfo.ThumbButtonInfos contient une collection de
ThumbButtonInfo qui sont les boutons présents dans notre aperçu. Les propriétés pour chaque bouton sont les suivantes :

Les événements pour ces boutons sont des plus classiques :
Changed et
Click.
Les propriétés des boutons permettent les actions suivantes :
- Command, CommandParameter, CommandTarget : permet d'associer un comportement au bouton avec ou sans paramètres, dans le cas de l'utilisation du pattern MVVM avec l'interface ICommand, ces propriétés peuvent être utile pour binder le behaviour correspondant. Sinon l'événement Click suffira simplement.
- Description : permet de modifier la description qui apparait au dessus du bouton lors du passage de la souris.
- DismissWhenClicked : permet de fermer l'aperçu lorsque l'on clique sur ce bouton.
- ImageSource : permet de mettre une image dans le bouton.
- IsBackgroundVisible : permet de rendre l'arrière-plan visible.
IsBackgroundVisible = true et
IsBackroundVisible = false

- IsEnabled : active ou désactive le bouton en le grisant.
IsEnabled = true et
IsEnabled = false (troisième bouton grisé)

- IsInteractive : permet de rendre le bouton cliquable ou non. A la différence du IsEnabled, le bouton reste visible mais sans le griser.
IsInteractive = true et
IsInteractive = false (deuxième bouton non cliquable mais non grisé)

- Visibility : permet de rendre visible ou invisible le bouton de plusieurs façons différentes.
Visibility = Visible et
Visibility = Hidden et
Visibility = Collapsed

Pour notre application, il suffit de relier les événements Click de nos boutons de la taskbar aux événements Click des boutons présents dans l'application :
1 2 3 4 5 6 7 8 9 | <Window.TaskbarItemInfo> <TaskbarItemInfo> <TaskbarItemInfo.ThumbButtonInfos> <ThumbButtonInfo Description="Hello" Click="btnHello_Click" ImageSource="office1.ico" /> <ThumbButtonInfo Description="Goodbye" Click="btnGoodbye_Click" ImageSource="office2.ico" /> <ThumbButtonInfo Description="Close" Click="ThumbButtonInfo_Click" ImageSource="office3.ico" /> </TaskbarItemInfo.ThumbButtonInfos> </TaskbarItemInfo> </Window.TaskbarItemInfo> |
Et l'on obtient une application que l'on peut piloter à partir des boutons présents dans l'aperçu de la taskbar :

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :