实现窗体圆角的方法,我用过的有以下两种:一是最简单的使用圆角图片,加到窗体的四个角的位置;二是使用Rectangle绘制。
下面是第二种方式。
代码:
下面是第二种方式。
代码:
public void SetWindowRegion() { GraphicsPath FormPath; FormPath = new System.Drawing.Drawing2D.GraphicsPath(); Rectangle rect = new Rectangle(-1, -1, this.Width + 1, this.Height); FormPath = GetRoundedRectPath(rect, 24); 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, 185, 90); // 右上角 arcRect.X = rect.Right - diameter; path.AddArc(arcRect, 275, 90); // 右下角 arcRect.Y = rect.Bottom - diameter; path.AddArc(arcRect, 356, 90); // 左下角 arcRect.X = rect.Left; arcRect.Width += 2; arcRect.Height += 2; path.AddArc(arcRect, 90, 90); path.CloseFigure(); return path; }
重写的OnPaint方法里调用SetWindowRegion。
效果图如下:
详细工程:http://download.csdn.net/detail/yysyangyangyangshan/4060106