2011-09-28 17 views
18

Tengo un PictureBox con una imagen en una aplicación de Windows Form en lenguaje C#. Quiero dibujar un rectángulo de relleno en alguna ubicación de cuadro de imagen.pero también necesito ver la imagen de cuadro de imagen.cómo ¿Puedo dibujar este rectángulo con baja opacidad para ver la imagen del cuadro de imagen?Dibuje un rectángulo de relleno con poca opacidad

+0

vea las preguntas y respuestas aquí: http://stackoverflow.com/questions/1113437/drawing-colors-in-a-picturebox inspírese con esas respuestas, básicamente puede copiar pegar desde allí :) –

Respuesta

52

¿Quieres decir:

using (Graphics g = Graphics.FromImage(pb.Image)) 
{ 
    using(Brush brush = new SolidBrush(your_color)) 
    { 
     g.FillRectangle(brush , x, y, width, height); 
    } 
} 

o puede utilizar

Brush brush = new SolidBrush(Color.FromArgb(alpha, red, green, blue)) 

donde alfa va de 0 a 255, por lo que un valor de 128 para su alfa le dará 50% opactity.

+0

Al igual que el tipo de gráficos, los tipos de pincel implementan la interfaz IDisposable. Quizás el ejemplo también demuestre ese hecho. – tafa

+0

Debe considerar alfa de color para el relleno no sólido (baja opacidad). – hungryMind

2

Es necesario crear un objeto Graphics basado en su imagen PictureBox y dibujar lo que quiere en él:

Graphics g = Graphics.FromImage(pictureBox1.Image); 
g.FillRectangle(Brushes.Red, new Rectangle(10, 10, 200, 200)) 
pictureBox1.Refresh() 

O como sugiere @Davide Parias se puede utilizar la pintura controlador de eventos:

private void pictureBox_Paint(object sender, PaintEventArgs e) 
{ 
    e.Graphics.FillRectangle(Brushes.Red, new Rectangle(10, 10, 200, 200)); 
} 
+0

en el controlador de eventos: private void pictureBox_Paint (remitente del objeto, PaintEventArgs e) ... –

Cuestiones relacionadas