将窗体图形绘制到图片框

本文关键字:绘制 窗体 图形 | 更新日期: 2023-09-27 18:05:49

我不知道如何正确解释,但也许代码会使它更清楚。title1_BoxPictureBox,我试着把矩形"item"画进title1_BoxRect是包含矩形的列表。

可能是一些愚蠢的东西。我是编程新手。提前谢谢。

private void UpdateTiles(string path)
{
    Image imgsrc = Image.FromFile(@path);
    Image imgdst = new Bitmap(imgsrc.Width / 2, imgsrc.Height);
    using (Graphics gr = Graphics.FromImage(imgdst))
    { 
        for (int imgIndex = 0; imgIndex <= imgsrc.Width / 32; imgIndex++)
        {
            rects.Add(new Rectangle((imgIndex * 32), 0,
                (32 + (imgIndex * 32)), 32));
        }
        foreach (Rectangle item in rects)
        {
             gr.DrawImage(imgsrc,
                item);
             tile1_Box.RectangleToScreen(item);
        }
    }
}

将窗体图形绘制到图片框

您需要从Paint事件调用它,将 Graphics对象传递到您的函数:

private void title1_Box_Paint(object sender, PaintEventArgs e)
{   UpdateTiles(e.Graphics, path);  }
private void UpdateTiles(Graphics gr, string path)
{
 //.. now you gr instead of any local Graphics..!!

你也应该做一个

title1_Box.Invalidate();

到目前为止调用UpdateTiles的地方。因此,当windows检测到需要重新绘制时,将调用Paint事件,该事件也需要调用

您可以直接从picterBox实例创建图形类实例:

Graphics gr = title1_Box.CreateGraphics();

无论您对gr做什么,都将发生在title1_Box中,因此您现在可以直接在pictureBox中绘制。