protected override void OnPaintBackground(PaintHeaderEventArgs e)
{
base.OnPaintBackground(e);
if (e.Column == null || e.Column.ColumnState != ColumnState.Pressed)
{
using (LinearGradientBrush brush = new LinearGradientBrush(e.HeaderRect, this.StartColor, this.EndColor, LinearGradientMode.Vertical))
{
e.Graphics.FillRectangle(brush, e.HeaderRect);
}
using (Pen pen = new Pen(this.EndColor))
{
e.Graphics.DrawLine(pen, e.HeaderRect.Left, e.HeaderRect.Top, e.HeaderRect.Right-2, e.HeaderRect.Top);
e.Graphics.DrawLine(pen, e.HeaderRect.Left, e.HeaderRect.Top, e.HeaderRect.Left, e.HeaderRect.Bottom-1);
}
using (Pen pen = new Pen(this.StartColor))
{
e.Graphics.DrawLine(pen, e.HeaderRect.Right-1, e.HeaderRect.Top, e.HeaderRect.Right-1, e.HeaderRect.Bottom-1);
e.Graphics.DrawLine(pen, e.HeaderRect.Left+1, e.HeaderRect.Bottom-1, e.HeaderRect.Right-1, e.HeaderRect.Bottom-1);
}
}
else
{
Color pressed = this.PressedColor;
if (pressed == Color.Empty)
{
pressed = ControlPaint.Light(this.startColor);
}
using (SolidBrush brush = new SolidBrush(pressed))
{
e.Graphics.FillRectangle(brush, e.HeaderRect);
}
using (Pen pen = new Pen(this.StartColor))
{
e.Graphics.DrawRectangle(pen, e.HeaderRect.X, e.HeaderRect.Y, e.HeaderRect.Width-1, e.HeaderRect.Height-1);
}
}
}