Рисование слоев в GDI - PullRequest
3 голосов
/ 20 мая 2010

Я создаю приложение в .NET, используя winforms. Это приложение должно рисоваться на панели.

Можно ли рисовать объекты на разных слоях и комбинировать это с одним изображением на панели? В одном слое много объектов.

Образец изображения http://i49.tinypic.com/jv3wb7.png

1 Ответ

4 голосов
/ 20 мая 2010

Да, используйте 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);
}
...