Comment afficher une image dans un ToolTip en WFP

by Fabien Lavocat 10. September 2009 03:30

WPFAujourd’hui, une petite astuce pour afficher une image dans un ToolTip d’un contrôle WPF. Dans un prochain article, je vous montrerai comment faire pour personnaliser encore plus un ToolTip, mais si vous comprenez cet article, vous comprendrez vite comment le personnaliser.

On va donc commencer par créer une application WPF avec un bouton (vous pouvez mettre n’importe quel contrôle). Je vais lui donner un nom (Name), lui donner un texte (Content) puis pour mettre un texte dans le ToolTip, je spécifie la propriété ToolTip. Vous connaissez plus simple ?

image

Ce qui nous donne :

image

Trop simple pour nous. Allons un peu plus loin maintenant et affichons une image à la place du texte. Je vais maintenant donner à la propriété ToolTip non plus un simple texte mais un objet Image :

image

Ce qui nous donne un résultat bien meilleur :

image

Maintenant, en code, c’est un peu plus complexe mais surmontable.imageMon objet Image attend à sa propriété Source, un objet de type ImageSource, or BitmapImage dérive de BitmapSource qui lui-même dérive de ImageSource.
Si maintenant je souhaite contrôler la taille de mon image si je la charge dynamiquement, il faut rajouter des contrôles sur les hauteur / largeur de l’objet Image et non pas BitmapImage.

// Création de notre Bitmap qui sera la source de notre Image
BitmapImage bi = new BitmapImage(new Uri(@"C:\Users\   \Desktop\WPF.jpg", UriKind.RelativeOrAbsolute));
// Création d'une image que l'on va associé au ToolTip
Image img = new Image();

// Réduire la taille de l'image si la largeur est plus grande que 300px
if (bi.Width > 300)
{
    Double newHeigh = bi.Height * 300 / bi.Width;
    img.Height = newHeigh;
    img.Width = 300;
}

// Réduire la taille de l'image si la hauteur est plus grande que 300px
if (bi.Height > 300)
{
    Double newWidth = bi.Width * 300 / bi.Height;
    img.Width = newWidth;
    img.Height = 300;
}

// Affectation du Bitmap à la source de Image
img.Source = bi;
// Affectation de Image au ToolTip du bouton
bt.ToolTip = img;

Tags:

Comments

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



About

Fabien Lavocat

Lavocat Fabien
Ingénieur Multimédia - TMM Communication



"Blog-Microsoft.fr is an independent blog and is not affiliated with, nor has it been authorized, sponsored, or otherwise approved by Microsoft Corporation."

Contactez-moi Send mail

MVP
Microsoft Most Valuable Professional
Client Application Development