要对C#无标题窗口实现椭圆边角和画出边框线,只需重载窗口的onPaint事件。 同样道理,也可以对pictureBox控件实现圆角的效果,如图中所示。
private void FrmMain_Paint(object sender, PaintEventArgs e)
{
int w = this.Width;
int h = this.Height;
Point p1 = new Point(3, 0);
Point p2 = new Point(w - 4, 0);
Point p3 = new Point(w - 1, 3);
Point p4 = new Point(w - 1, h - 5);
Point p5 = new Point(w - 5, h - 1);
Point p6 = new Point(3, h - 1);
Point p7 = new Point(0, h - 4);
Point p8 = new Point(0, 3);
GraphicsPath path = new GraphicsPath();
Point[] p = new Point[] { p1, p2, p3, p4, p5, p6, p7, p8 };
path.AddPolygon(p);
// path.AddEllipse(50, 50, this.Width - 5, this.Height - 5);
this.Region = new Region(path);//
//
Graphics g = this.CreateGraphics();
Pen pen = new Pen(Color.Black, 2);
PointF point1 = new PointF(0,0);
PointF point2 = new PointF(0, this.Height-1);
Point point3 = new Point(this.Width-1, this.Height-1);
Point point4 = new Point(this.Width-1, 0);
//PointF[] curvePoints ={ point1, point2, point3, point4, point1 };
//g.DrawPolygon(pen, curvePoints);
/*
g.DrawLine(pen, point1, point2);
g.DrawLine(pen, point2, point3);
g.DrawLine(pen, point3, point4);
g.DrawLine(pen, point4, point1);
*/
g.DrawPolygon(pen, p);
}
