1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
protected override void OnPaintBackground(PaintEventArgs e)
{
#region Graphics
if (e == null)
return;
if (e.Graphics == null)
return;
Graphics g = e.Graphics;
#endregion
#region BAckground
if (e.ClipRectangle.Width > 0 & e.ClipRectangle.Height > 0)
{
Rectangle r = new Rectangle(e.ClipRectangle.X, e.ClipRectangle.Y, e.ClipRectangle.Width, e.ClipRectangle.Height);
using(_lb = GetBrushColorGradient(ref r))
e.Graphics.FillRectangle(_lb, e.ClipRectangle);
GraphicsPath gp = new GraphicsPath();
Pen p = new Pen(Color.White,2);
float radius = 15;
gp.AddLine(e.ClipRectangle.X + radius, e.ClipRectangle.Y, e.ClipRectangle.X + e.ClipRectangle.Width - (radius * 2), e.ClipRectangle.Y);
gp.AddArc(e.ClipRectangle.X + e.ClipRectangle.Width - (radius * 2), e.ClipRectangle.Y, radius * 2, radius * 2, 270, 90);
gp.AddLine(e.ClipRectangle.X + e.ClipRectangle.Width, e.ClipRectangle.Y + radius, e.ClipRectangle.X + e.ClipRectangle.Width, e.ClipRectangle.Y + e.ClipRectangle.Height - (radius * 2));
gp.AddArc(e.ClipRectangle.X + e.ClipRectangle.Width - (radius * 2), e.ClipRectangle.Y + e.ClipRectangle.Height - (radius * 2), radius * 2, radius * 2, 0, 90);
gp.AddLine(e.ClipRectangle.X + e.ClipRectangle.Width - (radius * 2), e.ClipRectangle.Y + e.ClipRectangle.Height, e.ClipRectangle.X + radius, e.ClipRectangle.Y + e.ClipRectangle.Height);
gp.AddArc(e.ClipRectangle.X, e.ClipRectangle.Y + e.ClipRectangle.Height - (radius * 2), radius * 2, radius * 2, 90, 90);
gp.AddLine(e.ClipRectangle.X, e.ClipRectangle.Y + e.ClipRectangle.Height- (radius * 2), e.ClipRectangle.X, e.ClipRectangle.Y + radius);
gp.AddArc(e.ClipRectangle.X, e.ClipRectangle.Y, radius * 2, radius * 2, 180, 90);
gp.CloseFigure();
g.DrawPath(p, gp);
this.Region = new System.Drawing.Region(gp);
ControlPaint.DrawBorder3D(g, r, Border3DStyle.RaisedInner);
gp.Dispose();
} |
Partager