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
можно напечатать?
ОБНОВЛЕНИЕ: (РИСУНКИ РИСУНКА)
Пользовательский элемент управления действует как холст -код здесь