L’un de mes grands moments, lorsque j’ai commencé à faire du WPF, a été la découverte que de nombreux contrôles que je croyais “tout bêtes”, ne l’était pas tant que ça. Par exemple, cette semaine, j’ai commencé à intégrer certaines modifications sur le système d’aide de l’un des logiciels sur lequel je travaille. Et au milieu de ces modifications se trouvait la réponse à une demande simple : fournir des tooltips “avancés”, similaires à ceux trouvés dans Office 2007.
Dans WPF, les tooltips ont deux caractéristiques très intéressantes :
- Ils sont skinnables : vous pouvez donc en faire (presque) ce que vous voulez en terme de design
- Ce sont des “ContentControl” : aucun problème donc pour y mettre un Panel quelconque et y ajouter autant de contrôles que nécessaire
L’exemple ci-dessus – même si il est, sur le plan graphique, loin d’être formidable – se fait facilement avec le code suivant :
Du coté des ressources
<Style TargetType="{x:Type ToolTip}">
<Setter Property="Background" Value="#7F000000"/>
<Setter Property="BorderBrush" Value="#7Fdcdcdc" />
<Setter Property="Foreground" Value="White"/>
</Style>
Du coté du contrôle
<Button ...>
<Button.ToolTip>
<DockPanel>
<Image DockPanel.Dock="Left">
<!-- ... -->
</Image>
<TextBlock DockPanel.Dock="Top" FontWeight="Bold"
VerticalAlignment="Center" Text="Menu principal" />
<TextBlock Text="Cliquez ici ...."/>
</DockPanel>
</Button.ToolTip>
</Button>
Facile non ?