Pregunta

I have a panel called "canvas". It is transparent. So the background is from the form image, which is dark blue. This shows in the panel or canvas.

When I save the canvas to image, it saves the background, but not what I have drawn thereon, my drawline pen is yellow. And I can see it drawing on the panel. But when I save it... there are not yellow lines in the image.

What am I missing? Where are my yellow lines?

I am running this with my timer tick... to get the view to update. This tracks the position of a CNC type machine. Gives a visual of where the machine is in relation to Zero.

My ultimate goal, is to have a "viewport" that is zoomable, thus getting it into a image, for easy resizing, and displaying in a pictureBox, which will handle the stretched image and center it automatically?

I have read some complex solutions, but I am after the simple ones. Any help would be appreciated. Sincerely,


private void VMoveNow()//Draw on panel called "canvas".
{
    double a = GV.MYa * -1; //Change Direction of Y Drawing.
    xc = Convert.ToInt32(GV.MXa) + (canvas.Width / 2);
    yc = Convert.ToInt32(a) + (canvas.Height / 2);
    g = canvas.CreateGraphics();
    g.DrawLine(p, x, y, xc, yc);
    x = xc;
    y = yc;
    g.Dispose();
}
private void SaveBMP() 
{
    try
    {
        Bitmap mybmp = new Bitmap(canvas.Width, canvas.Height);
        canvas.DrawToBitmap(mybmp, canvas.Bounds);
        mybmp.Save("C:\\myimage.bmp");
    }
    catch
    {
        return;
    }

}
¿Fue útil?

Solución

Thanks for looking.

I answered my own problem, after several attempts... I have figured out that I can scale my var's used for this drawings... and the size of the Drawline will be scale as a result.

So I now have scaling of the Drawline drawing, in a panel, with no picture or picture box needed. Does what I wished.

Setting the Pen width to -1 takes care of it resizing.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top