2011-11-25 8 views
6

Estoy trabajando en un proyecto en C# utilizando formularios de Windows. yo y el grupo que quiero hacer para que cuando el usuario pase el mouse sobre una imagen, en nuestro caso una tarjeta, aparezca una imagen más grande de esa tarjeta junto a la flecha del mouse, del mismo modo que la punta de la herramienta funcionaría. No creo que se puede utilizar una punta de la herramienta para hacer esto he intentado buscando por todas partes, cualquier consejo o ejemplos serían grandes muchas gracias¿visualiza la imagen en mouseover en forma de ventanas?

Respuesta

7

Es posible que desee ver en este Code Project Article

Se le muestra cómo crear una información sobre herramientas OwnerDrawn con una imagen.

+0

1 @MarkHall gran consejo! –

2

Una forma sencilla de hacerlo es ocultar/mostrar un cuadro de imagen en la ubicación especificada. Otro método es cargar & dibujar (pintar) una imagen usando GDI API.

4

Gracias por las respuestas obtuve todo resuelto. Lo que quería hacer era que cuando pasaba el ratón sobre un área determinada, aparecía una imagen diferente para esa área de la misma manera que una información sobre herramientas. Entonces, después de algunas investigaciones, descubrí cómo crear mi propia clase de punta de herramienta.

he aquí un ejemplo.

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(); 
    } 
} 

}

Cuestiones relacionadas