Ejemplo n.º 1
0
        private void InternalRendererHeader(ref Graphics g, ref Rectangle rect, bool bHot, ref DrawListViewColumnHeaderEventArgs e)
        {
            //set colors
            Color gradStartColor;
            Color gradEndColor;
            Color gradMiddleColor;
            Color borderColor = _palette.ColorTable.ToolStripBorder;

            if (e.State == ListViewItemStates.Selected)
            {
                gradStartColor  = Color.White;// _palette.ColorTable.ButtonSelectedGradientBegin;
                gradMiddleColor = _palette.ColorTable.ButtonCheckedGradientEnd;
                gradEndColor    = _palette.ColorTable.ButtonCheckedGradientBegin;
            }
            else
            {
                if (bHot)
                {
                    gradStartColor  = Color.White;// _palette.ColorTable.ButtonSelectedGradientBegin;
                    gradMiddleColor = _palette.ColorTable.ButtonSelectedGradientEnd;
                    gradEndColor    = _palette.ColorTable.ButtonSelectedGradientBegin;
                }
                else
                {
                    gradStartColor  = Color.White;//_palette.ColorTable.ToolStripGradientBegin;
                    gradMiddleColor = _palette.ColorTable.ToolStripGradientEnd;
                    gradEndColor    = _palette.ColorTable.ToolStripGradientBegin;
                }
            }
            //Fill Gradient
            using (LinearGradientBrush brush = new LinearGradientBrush(rect, gradStartColor, gradMiddleColor, LinearGradientMode.Vertical))
            {
                if (!_enableHeaderGlow)
                {
                    g.FillRectangle(brush, rect);
                }
                else
                {
                    DrawingMethods.DrawListViewHeader(g, rect, gradStartColor, gradMiddleColor, 90F);
                }
            }

            //DrawBorder
            g.DrawRectangle(new Pen(borderColor), rect);

            //Draw light lines
            //oriz
            g.DrawLine(new Pen(Color.White), new Point(rect.X + 1, rect.Y + 1), new Point(rect.X + rect.Width - 1, rect.Y + 1));
            //vert
            g.DrawLine(new Pen(Color.White), new Point(rect.X + 1, rect.Y + 1), new Point(rect.X + 1, rect.Y + rect.Height - 1));

            if (e.ColumnIndex == this.Columns.Count - 1)
            {
                g.DrawLine(new Pen(borderColor), new Point(rect.X + rect.Width - 1, rect.Y), new Point(rect.X + rect.Width - 1, rect.Y + rect.Height + 0));
            }
        }