private void pivotGridControl1_CustomDrawFieldValue(object sender, PivotCustomDrawFieldValueEventArgs e) { PivotFieldValueItem valueItem = GetItem(e); PivotSortOrder? sortOrder = GetSummarySortOrder(valueItem); if (sortOrder == null) { return; // proceed to standard drawing } PivotGridViewInfoData data = ((IPivotGridViewInfoDataOwner)pivotGridControl1).DataViewInfo; e.Info.InnerElements.Clear(); data.ActiveLookAndFeel.Painter.Header.DrawObject(e.Info); SortedShapeObjectInfoArgs sortInfo = new SortedShapeObjectInfoArgs(); sortInfo.Ascending = sortOrder == PivotSortOrder.Ascending; sortInfo.Graphics = e.Graphics; Rectangle sortBounds = data.ActiveLookAndFeel.Painter.SortedShape.CalcObjectMinBounds(sortInfo); sortBounds.X = e.Info.CaptionRect.Right + 2; sortBounds.Y = e.Info.CaptionRect.Y + (int)Math.Round((double)(e.Info.CaptionRect.Height - sortBounds.Height) / 2); sortInfo.Bounds = sortBounds; data.ActiveLookAndFeel.Painter.SortedShape.DrawObject(sortInfo); e.Handled = true; }
void OnCustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e) { if (!ShowSortIndexInColumnHeader || e.Column == null || e.Column.SortIndex == -1) { return; } GridColumnInfoArgs args = e.Info as GridColumnInfoArgs; e.Painter.DrawObject(args); SortedShapeObjectInfoArgs sortArgs = (SortedShapeObjectInfoArgs)args.InnerElements.Find(typeof(SortedShapeObjectInfoArgs)).ElementInfo; Rectangle sortRectangle = sortArgs.Bounds; Rectangle sortIndexRectangle = new Rectangle(sortRectangle.X - 8, args.CaptionRect.Y, 10, args.CaptionRect.Height); SolidBrush brush = e.Appearance.GetBackBrush(e.Cache) as SolidBrush; brush.Color = Color.FromArgb(150, brush.Color); Rectangle sortIndexShapeRectangle = new Rectangle(sortIndexRectangle.X - 2, sortIndexRectangle.Y, sortIndexRectangle.Width + sortRectangle.Width, sortIndexRectangle.Height); e.Cache.FillRectangle(brush, sortIndexShapeRectangle); e.Appearance.DrawString(e.Cache, e.Column.SortIndex.ToString(), sortIndexRectangle); e.Handled = true; }
protected override void RaiseCustomDrawColumnHeader(EventArgs e) { var args = e as ColumnHeaderCustomDrawEventArgs; if (args == null || args.Column == null) return; var gr = args.Column.Tag as GroupInfo; if (gr != null && gr.Name == args.Column.Name) { var shape = new SortedShapeObjectInfoArgs(); shape.Assign(args.Info); shape.Ascending = gr.Expanded; var r = shape.Bounds; r.X += 100; r.Width -= 100; shape.Bounds = r; args.Appearance.Font = new Font(args.Appearance.Font, FontStyle.Bold); args.Info.InnerElements.Add(Painter.ElementsPainter.SortedShape, shape); } }