在GDI中绘制图层

3
我正在使用winforms在.NET中创建一个应用程序。该应用程序必须在Panel上绘制。
是否可以在不同的图层上绘制对象,并将其组合成面板上的一幅图像? 其中一个图层上有许多对象。

sample image

1个回答

4

是的,对于每个“图层”,使用一个Bitmap,然后将每个位图绘制到面板上。

您可以通过以特定顺序调用DrawImage来控制哪个“图层”在顶部。

例如:

private void panel1_Paint(object sender, PaintEventArgs e)
{
   Bitmap bmp1 = new Bitmap(panel1.Width, panel1.Height);
   Bitmap bmp2 = new Bitmap(panel1.Width, panel1.Height);

   Graphics g1 = Graphics.FromImage(bmp1);
   Graphics g2 = Graphics.FromImage(bmp2);

   g1.FillRectangle(Brushes.Red, 10, 10, 100, 100);
   g2.FillEllipse(Brushes.Blue, 20, 20, 100, 100);

   e.Graphics.DrawImage(bmp1, 0, 0);
   e.Graphics.DrawImage(bmp2, 0, 0);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接