winform窗體圓角的兩種方法

 

第一種:

public void SetWindowRegion()
{
System.Drawing.Drawing2D.GraphicsPath FormPath;
FormPath = new System.Drawing.Drawing2D.GraphicsPath();
Rectangle rect = new Rectangle(0, 0, this.Width, this.Height - 0);//this.Left-10,this.Top-10,this.Width-10,this.Height-10);
FormPath = GetRoundedRectPath(rect, 10);
this.Region = new Region(FormPath);
}


第二種:

private GraphicsPath GetRoundedRectPath(Rectangle rect, int radius)
{
int diameter = radius;
Rectangle arcRect = new Rectangle(rect.Location, new Size(diameter, diameter));
GraphicsPath path = new GraphicsPath(); // 左上角
path.AddArc(arcRect, 180, 90); // 右上角
arcRect.X = rect.Right - diameter;
path.AddArc(arcRect, 270, 90); // 右下角
arcRect.Y = rect.Bottom - diameter;
path.AddArc(arcRect, 0, 90); // 左下角
arcRect.X = rect.Left;
path.AddArc(arcRect, 90, 90);
path.CloseFigure();
return path;
}

 

posted @ 2012-03-15 16:53  祝福灵魂  阅读(266)  评论(1编辑  收藏  举报