有没有办法创建非矩形的pictureBoxes。我有圆形,应该重叠,如果可能的话应该在不同的图片框中。 我试过了this here,但你看不到两个一次重叠的图片框,只有一个......
这是我测试产生的图片: IMG http://i58.tinypic.com/wwj9jc.png
答案 0 :(得分:1)
您可以通过向GraphicsPath添加椭圆,然后从中构建新Region来使PictureBoxes变为圆形。
这是一个简单的例子:
public class Target : PictureBox
{
public Target()
{
this.Size = new Size(100, 100);
this.Paint += Target_Paint;
Rectangle rc = this.ClientRectangle;
rc.Inflate(-10, -10);
System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath();
gp.AddEllipse(rc);
this.Region = new Region(gp);
}
void Target_Paint(object sender, PaintEventArgs e)
{
Rectangle rc = this.ClientRectangle;
rc.Inflate(-10, -10);
using (Pen pen = new Pen(Color.Blue, 5))
{
e.Graphics.DrawEllipse(pen, rc);
}
rc = new Rectangle(new Point(this.Size.Width / 2, this.Size.Height / 2), new Size(1, 1));
rc.Inflate(9, 9);
e.Graphics.FillEllipse(Brushes.Red, rc);
}
}
编译完成后,新控件将显示在ToolBox的顶部。
这是一个屏幕截图,其中三个相互重叠: