2011-11-25 14 views
6

Sto lavorando a un progetto in C# utilizzando i moduli di Windows. io e il gruppo che ho intenzione di fare in modo che quando l'utente passa il mouse sopra un'immagine, nel nostro caso una carta, che un'immagine più grande di quella carta appaia vicino alla freccia del mouse, più o meno allo stesso modo la punta dello strumento funzionerebbe. Non credo che si può usare un tool tip per fare questo ho provato guardando ovunque, qualsiasi consiglio o esempi sarebbe grande grazie millevisualizza l'immagine al passaggio del mouse in formato Windows?

risposta

7

Si consiglia di guardare a questo Code Project Article

vi mostra come creare un OwnerDrawn descrizione comando con un'immagine.

+0

+1 @MarkHall Grande punta! –

2

Un modo semplice per farlo è quello di nascondere/mostrare una casella di immagine nella posizione specificata. Un altro metodo è caricare & disegnare (dipingere) un'immagine usando l'API GDI.

4

Grazie per le risposte ho capito tutto. Quello che volevo fare era che quando facevo il mouse su una certa area, un'immagine diversa per quell'area sarebbe comparsa nello stesso modo di una punta di strumento. Quindi, dopo alcune ricerche, ho capito come creare la mia classe di tool tip.

Ecco un esempio.

public partial class Form1 : Form 
{ 

    public Form1() 
    { 
     InitializeComponent(); 

     CustomToolTip tip = new CustomToolTip(); 
     tip.SetToolTip(button1, "text"); 
     tip.SetToolTip(button2, "writing"); 
     button1.Tag = Properties.Resources.pelican; // pull image from the resources file 
     button2.Tag = Properties.Resources.pelican2;  
    } 
} 

class CustomToolTip : ToolTip 
{ 
    public CustomToolTip() 
    { 
     this.OwnerDraw = true; 
     this.Popup += new PopupEventHandler(this.OnPopup); 
     this.Draw +=new DrawToolTipEventHandler(this.OnDraw); 
    } 

    private void OnPopup(object sender, PopupEventArgs e) // use this event to set the size of the tool tip 
    { 
     e.ToolTipSize = new Size(600, 1000); 
    } 

    private void OnDraw(object sender, DrawToolTipEventArgs e) // use this to customzie the tool tip 
    { 
     Graphics g = e.Graphics; 

     // to set the tag for each button or object 
     Control parent = e.AssociatedControl; 
     Image pelican = parent.Tag as Image; 

     //create your own custom brush to fill the background with the image 
     TextureBrush b = new TextureBrush(new Bitmap(pelican));// get the image from Tag 

     g.FillRectangle(b, e.Bounds); 
     b.Dispose(); 
    } 
} 

}

Problemi correlati