DrawToBitmap que devuelve una imagen en blanco
Tengo un problema al crear una imagen de mapa de bits a partir de mi aplicación winform.
Situación:
tengo unUserControl
nombrado como "CanvasControl
"que aceptaOnPaint
método que actúa como lienzo para mi aplicación Draw Pad. Dentro de este control de usuario tengo una función "PrintCanvas()
"que creará una imagen de captura de pantalla delUserControl
en archivo PNG. abajo esta elPrintCanvas()
función:
public void PrintCanvas(string filename = "sample.png")
{
Graphics g = this.CreateGraphics();
//new bitmap object to save the image
Bitmap bmp = new Bitmap(this.Width, this.Height);
//Drawing control to the bitmap
this.DrawToBitmap(bmp, new Rectangle(0, 0, this.Width, this.Height));
bmp.Save(Application.StartupPath +
@"\ExperimentFiles\Experiment1" + filename, ImageFormat.Png);
bmp.Dispose();
}
Este control de usuario (CanvasControl
) se llama dentro de mi formulario principal donde el usuario dibujará algo y tendrá la opción de guardar luego usando un botón de guardar. El botón Guardar mostrará el "PrintCanvas()
"función de laUserControl
.
Obtengo el archivo de imagen de salida como se esperaba, pero el problema es que era una imagen en blanco.
Lo que he probado hasta ahora:
Para probar que no es un problema de sintaxis, intenté transferir elPrintCanvas()
funciono en mi formulario principal y sorprendentemente obtengo una imagen del formulario principal completo en el archivo, pero elUserControl
No es visible allí.
¿Hay alguna otra configuración que me perdí para hacer una forma de ganarUserControl
¿imprimible?
ACTUALIZACIÓN: (RUTINAS DE DIBUJO)
Control de usuario que actúa como lienzo -codigo aqui