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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage