将窗体图形绘制到图片框
本文关键字:绘制 窗体 图形 | 更新日期: 2023-09-27 18:05:49
我不知道如何正确解释,但也许代码会使它更清楚。title1_Box
是PictureBox
,我试着把矩形"item"画进title1_Box
。Rect
是包含矩形的列表。
可能是一些愚蠢的东西。我是编程新手。提前谢谢。
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中绘制。