以下内容是 将panel控件 的边框进行了重绘,但如果要将四个角改成圆角的话,怎么实现呢?
private void panel2_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder( e.Graphics,
panel2.ClientRectangle,
Color.Blue ,
3,
ButtonBorderStyle.Solid,
Color.Red,
3,
ButtonBorderStyle.Solid,
Color.Red,
3,
ButtonBorderStyle.Solid,
Color.Red,
3,
ButtonBorderStyle.Solid);
private void panel2_Paint(object sender, PaintEventArgs e)
{
ControlPaint.DrawBorder( e.Graphics,
panel2.ClientRectangle,
Color.Blue ,
3,
ButtonBorderStyle.Solid,
Color.Red,
3,
ButtonBorderStyle.Solid,
Color.Red,
3,
ButtonBorderStyle.Solid,
Color.Red,
3,
ButtonBorderStyle.Solid);
public void SetWindowRegion()
{
System.Drawing.Drawing2D.GraphicsPath FormPath;
FormPath = new System.Drawing.Drawing2D.GraphicsPath();
Rectangle rect = new Rectangle(0, 0, this.Width, this.Height - 22);
FormPath = GetRoundedRectPath(rect, 50);
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;
}
protected override void OnResize(System.EventArgs e)
{
this.Region = null;
SetWindowRegion();
}
#endregionForm 画面圆角的 希望对你有帮助
public void SetWindowRegion()
{
System.Drawing.Drawing2D.GraphicsPath FormPath;
FormPath = new System.Drawing.Drawing2D.GraphicsPath();
Rectangle rect = new Rectangle(0, 0, this.Width, this.Height - 22);
FormPath = GetRoundedRectPath(rect, 50);
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;
}
protected override void OnResize(System.EventArgs e)
{
this.Region = null;
SetWindowRegion();
}
#endregion
Form画面圆角的希望对你有帮助