首页 > 代码库 > winfrom 圆角panel
winfrom 圆角panel
首先后台添加命名空间
using System.Drawing.Drawing2D;
后台代码
namespace Report.Web{ public partial class RoundPanel : Panel { private int mMatrixRound = 8;//圆角大小默认值 private Color mBack; //重新定义背景颜色 public Color Back { get { return mBack; } set { if (value =http://www.mamicode.com/= null) { mBack = Control.DefaultBackColor; } else { mBack = value; } base.Refresh(); } } /// <summary>圆角弧度(0为不要圆角)</summary> [Browsable(true)] //显示到属性栏 [Description("圆角弧度(0为不要圆角)")]//属性栏 显示的注释 public int MatrixRound { get { return mMatrixRound; } set { mMatrixRound = value; base.Refresh(); } } private GraphicsPath CreateRound(Rectangle rect, int radius) { GraphicsPath roundRect = new GraphicsPath(); //顶端 roundRect.AddLine(rect.Left + radius - 1, rect.Top - 1, rect.Right - radius, rect.Top - 1); //右上角 roundRect.AddArc(rect.Right - radius, rect.Top - 1, radius, radius, 270, 90); //右边 roundRect.AddLine(rect.Right, rect.Top + radius, rect.Right, rect.Bottom - radius); //右下角 roundRect.AddArc(rect.Right - radius, rect.Bottom - radius, radius, radius, 0, 90); //底边 roundRect.AddLine(rect.Right - radius, rect.Bottom, rect.Left + radius, rect.Bottom); //左下角 roundRect.AddArc(rect.Left - 1, rect.Bottom - radius, radius, radius, 90, 90); //左边 roundRect.AddLine(rect.Left - 1, rect.Top + radius, rect.Left - 1, rect.Bottom - radius); //左上角 roundRect.AddArc(rect.Left - 1, rect.Top - 1, radius, radius, 180, 90); return roundRect; } protected override void OnPaint(PaintEventArgs pe) { int width = base.Width - base.Margin.Left - base.Margin.Right; int height = base.Height - base.Margin.Top - base.Margin.Bottom; Rectangle rec = new Rectangle(base.Margin.Left, base.Margin.Top, width, height); GraphicsPath round = CreateRound(rec, mMatrixRound); pe.Graphics.SmoothingMode = SmoothingMode.AntiAlias; pe.Graphics.FillPath((Brush)(new SolidBrush(mBack)), round); } protected override void OnResize(EventArgs eventargs) { base.Refresh(); } }}
注:以上信息我也是通过查资料然后总结的。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。