public static void Draw(PaintArgs p, Rectangle r, BorderStyleSimple style, Color color) { Color color2; Color color3; Color color4; Color color5; if (color != SystemColors.Control) { color2 = iColors.Lighten2(color); color3 = iColors.Darken4(color); color4 = iColors.Lighten4(color); color5 = iColors.Darken2(color); } else { color2 = SystemColors.ControlLight; color3 = SystemColors.ControlDarkDark; color4 = SystemColors.ControlLightLight; color5 = SystemColors.ControlDark; } Color[] array = new Color[4]; switch (style) { case BorderStyleSimple.Raised: array[0] = color2; array[1] = color3; array[2] = color4; array[3] = color5; break; case BorderStyleSimple.Sunken: array[0] = color5; array[1] = color4; array[2] = color3; array[3] = color2; break; case BorderStyleSimple.Bump: array[0] = color2; array[1] = color3; array[2] = color3; array[3] = color2; break; case BorderStyleSimple.Etched: array[0] = color5; array[1] = color4; array[2] = color4; array[3] = color5; break; case BorderStyleSimple.RaisedInner: array[0] = color4; array[1] = color5; break; case BorderStyleSimple.RaisedOuter: array[0] = color2; array[1] = color3; break; case BorderStyleSimple.SunkenInner: array[0] = color3; array[1] = color2; break; case BorderStyleSimple.SunkenOuter: array[0] = color5; array[1] = color4; break; case BorderStyleSimple.Flat: array[0] = Color.Black; array[1] = Color.Black; break; } Point[] borderUpperLeftPoints = BorderSimple.GetBorderUpperLeftPoints(p, r); p.Graphics.DrawLines(p.Graphics.Pen(array[0]), borderUpperLeftPoints); borderUpperLeftPoints = BorderSimple.GetBorderLowerRightPoints(p, r); p.Graphics.DrawLines(p.Graphics.Pen(array[1]), borderUpperLeftPoints); if (style != BorderStyleSimple.Raised && style != BorderStyleSimple.Sunken && style != BorderStyleSimple.Bump && style != BorderStyleSimple.Etched) { return; } r.Inflate(-1, -1); borderUpperLeftPoints = BorderSimple.GetBorderUpperLeftPoints(p, r); p.Graphics.DrawLines(p.Graphics.Pen(array[2]), borderUpperLeftPoints); borderUpperLeftPoints = BorderSimple.GetBorderLowerRightPoints(p, r); p.Graphics.DrawLines(p.Graphics.Pen(array[3]), borderUpperLeftPoints); }
public static void Draw(PaintEventArgs p, Rectangle r, BorderStyleSimple style, Color color) { Color color2; Color color3; Color color4; Color color5; if (color != SystemColors.Control) { color2 = iColors.Lighten2(color); color3 = iColors.Darken4(color); color4 = iColors.Lighten4(color); color5 = iColors.Darken2(color); } else { color2 = SystemColors.ControlLight; color3 = SystemColors.ControlDarkDark; color4 = SystemColors.ControlLightLight; color5 = SystemColors.ControlDark; } Color[] array = new Color[4]; if (style == BorderStyleSimple.Raised) { array[0] = color2; array[1] = color3; array[2] = color4; array[3] = color5; } else if (style == BorderStyleSimple.Sunken) { array[0] = color5; array[1] = color4; array[2] = color3; array[3] = color2; } else if (style == BorderStyleSimple.Bump) { array[0] = color2; array[1] = color3; array[2] = color3; array[3] = color2; } else if (style == BorderStyleSimple.Etched) { array[0] = color5; array[1] = color4; array[2] = color4; array[3] = color5; } else if (style == BorderStyleSimple.RaisedInner) { array[0] = color4; array[1] = color5; } else if (style == BorderStyleSimple.RaisedOuter) { array[0] = color2; array[1] = color3; } else if (style == BorderStyleSimple.SunkenInner) { array[0] = color3; array[1] = color2; } else if (style == BorderStyleSimple.SunkenOuter) { array[0] = color5; array[1] = color4; } else if (style == BorderStyleSimple.Flat) { array[0] = Color.Black; array[1] = Color.Black; } Point[] points = BorderSimple.GetBorderUpperLeftPoints(p, r); p.Graphics.DrawLines(new Pen(array[0]), points); points = BorderSimple.GetBorderLowerRightPoints(p, r); p.Graphics.DrawLines(new Pen(array[1]), points); if (style == BorderStyleSimple.Raised || style == BorderStyleSimple.Sunken || style == BorderStyleSimple.Bump || style == BorderStyleSimple.Etched) { r.Inflate(-1, -1); points = BorderSimple.GetBorderUpperLeftPoints(p, r); p.Graphics.DrawLines(new Pen(array[2]), points); points = BorderSimple.GetBorderLowerRightPoints(p, r); p.Graphics.DrawLines(new Pen(array[3]), points); } }