DrawToBitmap возвращает пустое изображение

У меня проблема с созданием растрового изображения из моего приложения winform.

Ситуация:

у меня естьUserControl названный какCanvasControl"который принимаетOnPaint метод, действующий как холст для моего приложения Draw Pad. Внутри этого пользовательского элемента управления у меня есть функция "PrintCanvas()«Это создаст скриншот изображенияUserControl в файл PNG. НижеPrintCanvas() функция:

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();
}

Этот пользовательский элемент управления (CanvasControl) вызывается внутри моей основной формы, где пользователь будет что-то рисовать и иметь возможность сохранить потом, используя кнопку сохранения. Кнопка сохранения вызовет "PrintCanvas()«ФункцияUserControl.

Я получаю выходной файл изображения, как и ожидалось, но проблема в том, что это было пустое изображение.

Что я уже пробовал:

Чтобы проверить, что это не проблема синтаксиса, я попытался передатьPrintCanvas() функции в мою основную форму, и на удивление я получаю изображение всей основной формы в файле, ноUserControl там не видно

Есть ли другие настройки, которые я пропустил, чтобы сделать winformUserControl можно напечатать?

ОБНОВЛЕНИЕ: (РИСУНКИ РИСУНКА)

Пользовательский элемент управления действует как холст -код здесь

Ответы на вопрос(1)

Ваш ответ на вопрос