Grabar contenido de un panel

06/10/2009 - 19:59 por Alberto | Informe spam
En un proyecto de prueba incluí un panel y dos botones. El primer botón
dibuja una línea en el panel y el otro botón graba el contenido de dicho
panel en un fichero. El código es el siguiente:

private void button5_Click(object sender, EventArgs e)

{

Graphics g = panel1.CreateGraphics();

g.DrawLine(new Pen(Brushes.Blue), new Point(0, 0), new Point(50, 50));

}

private void button4_Click(object sender, EventArgs e)

{

int width = panel1.Width;

int height = panel1.Height;

Bitmap bitMap = new Bitmap(width, height);

Rectangle rec = new Rectangle(0, 0, width, height);

panel1.DrawToBitmap(bitMap, rec);

bitMap.Save(@"C:/Windows/prueba.bmp");

}

El problema es que la línea no aparece en el fichero y no entiendo la razón.
¿Hay modo de solucionarlo? Muchas gracias

Preguntas similare

Leer las respuestas

#1 xcal
06/10/2009 - 23:27 | Informe spam
puede ser porque para
grabarlo precisarias tener algo como

bitMap = panel1.DrawToBitmap(bitMap, rec);

no se si mi codigo funciona
pero esa es la idea

espero ayude
Carlos

"Alberto" escribió en el mensaje
news:
En un proyecto de prueba incluí un panel y dos botones. El primer botón
dibuja una línea en el panel y el otro botón graba el contenido de dicho
panel en un fichero. El código es el siguiente:

private void button5_Click(object sender, EventArgs e)

{

Graphics g = panel1.CreateGraphics();

g.DrawLine(new Pen(Brushes.Blue), new Point(0, 0), new Point(50, 50));

}

private void button4_Click(object sender, EventArgs e)

{

int width = panel1.Width;

int height = panel1.Height;

Bitmap bitMap = new Bitmap(width, height);

Rectangle rec = new Rectangle(0, 0, width, height);

panel1.DrawToBitmap(bitMap, rec);

bitMap.Save(@"C:/Windows/prueba.bmp");

}

El problema es que la línea no aparece en el fichero y no entiendo la
razón. ¿Hay modo de solucionarlo? Muchas gracias


Respuesta Responder a este mensaje
#2 Alberto
06/10/2009 - 23:53 | Informe spam
Gracias pero es que esa instrucción ya la tengo. Guardo en un mapa de bits
el rectángulo especificado por rec.

"xcal" <d22> escribió en el mensaje de noticias
news:
puede ser porque para
grabarlo precisarias tener algo como

bitMap = panel1.DrawToBitmap(bitMap, rec);

no se si mi codigo funciona
pero esa es la idea

espero ayude
Carlos

"Alberto" escribió en el mensaje
news:
En un proyecto de prueba incluí un panel y dos botones. El primer botón
dibuja una línea en el panel y el otro botón graba el contenido de dicho
panel en un fichero. El código es el siguiente:

private void button5_Click(object sender, EventArgs e)

{

Graphics g = panel1.CreateGraphics();

g.DrawLine(new Pen(Brushes.Blue), new Point(0, 0), new Point(50, 50));

}

private void button4_Click(object sender, EventArgs e)

{

int width = panel1.Width;

int height = panel1.Height;

Bitmap bitMap = new Bitmap(width, height);

Rectangle rec = new Rectangle(0, 0, width, height);

panel1.DrawToBitmap(bitMap, rec);

bitMap.Save(@"C:/Windows/prueba.bmp");

}

El problema es que la línea no aparece en el fichero y no entiendo la
razón. ¿Hay modo de solucionarlo? Muchas gracias






Respuesta Responder a este mensaje
#3 Alberto
07/10/2009 - 09:35 | Informe spam
Después de muchas pruebas sigo sin resolver el problema pero vi algunas
cosas interesantes:

El problema tiene que estar en panel1.DrawToBitmap(bitMap, rec); porque
si a continuación vuelco el bitMap a un PictureBox, tampoco se ven las
líneas. En cambio, si dibujo directamente sobre el bitMap y después grabo su
contenido, sí que se ve.


"Alberto" escribió en el mensaje
news:
En un proyecto de prueba incluí un panel y dos botones. El primer botón
dibuja una línea en el panel y el otro botón graba el contenido de dicho
panel en un fichero. El código es el siguiente:

private void button5_Click(object sender, EventArgs e)

{

Graphics g = panel1.CreateGraphics();

g.DrawLine(new Pen(Brushes.Blue), new Point(0, 0), new Point(50, 50));

}

private void button4_Click(object sender, EventArgs e)

{

int width = panel1.Width;

int height = panel1.Height;

Bitmap bitMap = new Bitmap(width, height);

Rectangle rec = new Rectangle(0, 0, width, height);

panel1.DrawToBitmap(bitMap, rec);

bitMap.Save(@"C:/Windows/prueba.bmp");

}

El problema es que la línea no aparece en el fichero y no entiendo la
razón. ¿Hay modo de solucionarlo? Muchas gracias


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida