private void FitColumnWidthToHeaderAndContents(GridRow currentRow, Point p) { GridHeaderItem headerItem = (GridHeaderItem)currentRow.FindItemFromPoint(new Point(p.X - GridHeaderItem.ResizeGutter, p.Y), out ResizeColumnsInitialMouseLocation); ResizeColumnsInitialMouseLocation.X += GridHeaderItem.ResizeGutter; ActiveColumn = headerItem.ColumnName; if (HeaderRow.Items.ContainsKey(ActiveColumn)) { int maxWidth = headerItem.MinimumWidth; foreach (GridRow row in RowsAndChildren) { GridItemBase _item = row.GetItem(ActiveColumn); int itemWidth = _item.GetGridItemWidth(ActiveColumn); if (itemWidth > maxWidth) { maxWidth = itemWidth; } } headerItem.Width = maxWidth; Refresh(); } }