winform 窗体变成圆角


public void SetWindowRegion()
{

System.Drawing.Drawing2D.GraphicsPath FormPath;

FormPath = new System.Drawing.Drawing2D.GraphicsPath();

Rectangle rect = new Rectangle(0, 22, this.Width, this.Height - 22);//this.Left-10,this.Top-10,this.Width-10,this.Height-10);

FormPath = GetRoundedRectPath(rect, 30);

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();

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM