DrawToBitmap gibt ein leeres Bild zurück
Ich habe ein Problem beim Erstellen eines Bitmap-Bildes aus meiner Winform-Anwendung.
Situation
Ich habe einUserControl
benannt als "CanvasControl
"das akzeptiertOnPaint
-Methode, die als Zeichenfläche für meine Draw Pad-Anwendung fungiert. In diesem User Control habe ich eine Funktion "PrintCanvas()
"erstellt ein Screenshot desUserControl
in PNG-Datei. Unten ist dasPrintCanvas()
Funktion:
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();
}
Diese Benutzersteuerung CanvasControl
) wird in meinem Hauptformular aufgerufen, in dem der Benutzer etwas zeichnet und anschließend die Option zum Speichern über eine Schaltfläche zum Speichern hat. Die Schaltfläche Speichern ruft das "PrintCanvas()
"Funktion desUserControl
.
Ich erhalte die Ausgabebilddatei wie erwartet, aber das Problem ist, dass es sich um ein leeres Bild handelt.
as ich bisher ausprobiert habe:
Um zu testen, ob es sich nicht um ein Syntaxproblem handelt, habe ich versucht, das @ zu übertragePrintCanvas()
Funktion in mein Hauptformular und überraschenderweise bekomme ich ein Bild des gesamten Hauptformulars in der Datei, aber dasUserControl
ist dort nicht sichtbar.
Gibt es ein anderes Setup, das ich verpasst habe, um eine Winform zu erstellen?UserControl
druckbar?
UPDATE: (ZEICHNUNGSROUTINEN)
Benutzersteuerung als Zeichenfläche -code hier