DrawToBitmap retornando imagem em branco
Estou com um problema ao criar uma imagem de bitmap do meu aplicativo winform.
Situação:
eu tenho umUserControl
nomeado como "CanvasControl
"que aceitaOnPaint
método atuando como tela para meu aplicativo Draw Pad. Dentro deste controle de usuário, tenho uma função "PrintCanvas()
"que criará uma imagem de tela doUserControl
no arquivo PNG. Abaixo está oPrintCanvas()
função:
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 controle de usuário (CanvasControl
) é chamado dentro do meu formulário principal, em que o usuário desenha algo e tem a opção de salvar posteriormente usando o botão Salvar. O botão Salvar exibirá o "PrintCanvas()
"função doUserControl
.
Recebo o arquivo de imagem de saída conforme o esperado, mas o problema é que era uma imagem em branco.
O que eu tentei até agora:
Para testar se não é um problema de sintaxe, tentei transferir oPrintCanvas()
função em minha forma principal e, surpreendentemente, recebo uma imagem de toda a forma principal em arquivo, mas oUserControl
não é visível lá.
Existe alguma outra configuração que eu perdi para fazer um winformUserControl
imprimível?
ATUALIZAÇÃO: (ROTINAS DE DESENHO)
Controle de usuário atuando como tela -codifique aqui