System.Windows.Forms.ThemeWin32Classic.DrawListViewGroupHeader C# (CSharp) Method

DrawListViewGroupHeader() protected method

protected DrawListViewGroupHeader ( Graphics dc, ListView control, System.Windows.Forms.ListViewGroup group ) : void
dc System.Drawing.Graphics
control ListView
group System.Windows.Forms.ListViewGroup
return void
		protected virtual void DrawListViewGroupHeader (Graphics dc, ListView control, ListViewGroup group)
		{
			Rectangle text_bounds = group.HeaderBounds;
			Rectangle header_bounds = group.HeaderBounds;
			text_bounds.Offset (8, 0);
			text_bounds.Inflate (-8, 0);
			int text_height = control.Font.Height + 2; // add a tiny padding between the text and the group line

			Font font = new Font (control.Font, control.Font.Style | FontStyle.Bold);
			Brush brush = new LinearGradientBrush (new Point (header_bounds.Left, 0), new Point (header_bounds.Left + ListViewGroupLineWidth, 0), 
					SystemColors.Desktop, Color.White);
			Pen pen = new Pen (brush);

			StringFormat sformat = new StringFormat ();
			switch (group.HeaderAlignment) {
				case HorizontalAlignment.Left:
					sformat.Alignment = StringAlignment.Near;
					break;
				case HorizontalAlignment.Center:
					sformat.Alignment = StringAlignment.Center;
					break;
				case HorizontalAlignment.Right:
					sformat.Alignment = StringAlignment.Far;
					break;
			}

			sformat.LineAlignment = StringAlignment.Near;
			dc.DrawString (group.Header, font, SystemBrushes.ControlText, text_bounds, sformat);
			dc.DrawLine (pen, header_bounds.Left, header_bounds.Top + text_height, header_bounds.Left + ListViewGroupLineWidth, 
					header_bounds.Top + text_height);

			sformat.Dispose ();
			font.Dispose ();
			pen.Dispose ();
			brush.Dispose ();
		}
ThemeWin32Classic