private void DrawBorders(Graphics g, Color baseColor) { Color light = baseColor.Lighter(.3F); Color dark = baseColor.Darker(.3F); Color topLeftColor = light; Color bottomRightColor = dark; if (_state.IsPressed()) { topLeftColor = dark; bottomRightColor = light; } Pen topLeftPen = new Pen(topLeftColor); Pen bottomRightPen = new Pen(bottomRightColor); Pen middlePen = new Pen(baseColor); float l = Bounds.Left; float r = Bounds.Right; float t = Bounds.Top; float b = Bounds.Bottom; // Straight line parts g.DrawLine(topLeftPen, l + 1F, t, r - 1F, t); g.DrawLine(bottomRightPen, l + 1F, b, r - 1F, b); g.DrawLine(topLeftPen, l, t + 1F, l, b - 1F); g.DrawLine(bottomRightPen, r, t + 1F, r, b - 1F); // "rounded" corner lines g.DrawLine(topLeftPen, l, t + 2F, l + 2F, t); g.DrawLine(middlePen, r - 2F, t, r, t + 2F); g.DrawLine(middlePen, l, b - 2F, l + 2F, b); g.DrawLine(bottomRightPen, r, b - 2F, r - 2F, b); topLeftPen.Dispose(); bottomRightPen.Dispose(); middlePen.Dispose(); }