在pictureBox上放一个形状,c#

时间:2014-11-18 07:50:09

标签: c# forms picturebox

我有一个pictureBox,我需要在pictureBox上的不同位置放一些椭圆形..

由于某种原因,形状背后的形状,他们看不见..

我可以做一些形状会在图片上而不在图片后面的东西吗?

什么属性改变了这个?

1 个答案:

答案 0 :(得分:0)

要绘制一些椭圆形状,请使用List<Rectangle> ovals = List<Rectangle>();

要绘制它们,您可以选择

  • 绘制到 PictureBox的图像或 -
  • PictureBox的
  • 位于顶部

对于前者,您需要从要更改的Graphics创建Image对象:

Bitmap bmp = new Bitmap(pictureBox1.Image);
using (Graphics graphics = Graphics.FromImage(bmp))
   foreach (Rectangle R in ovals)
        graphics.FillEllipse(yourBrush, R.X, R.Y, R.Width, R.Height);
if (pictureBox1.Image != null) pictureBox1.Image.Dispose();
pictureBox1.Image = bmp;

此代码将更改像素,可以放在任何位置。

对于后者,您使用Paint事件:

foreach (Rectangle R in ovals)
   e.Graphics.FillEllipse(yourBrush, R.X, R.Y, R.Width, R.Height);

此版本只会更改PicureBox的表面,需要放入或触发Paint事件。

我想你想要这个版本..