} // ThumbPreviewMouseLeftButtonDown // ---------------------------------------------------------------------- private void GridColumnWidthChanged(object sender, EventArgs e) { if (!this.loaded) { return; } GridViewColumn gridViewColumn = sender as GridViewColumn; // suppress column resizing for proportional and fixed columns if (ProportionalColumn.IsProportionalColumn(gridViewColumn) || FixedColumn.IsFixedColumn(gridViewColumn)) { return; } // ensure range column within the bounds if (RangeColumn.IsRangeColumn(gridViewColumn)) { // special case: auto column width - maybe conflicts with min/max range if (gridViewColumn.Width.Equals(double.NaN)) { this.autoSizedColumn = gridViewColumn; return; // handled by the change header size event } // ensure column bounds if (SetRangeColumnToBounds(gridViewColumn) != 0) { return; } } DoResizeColumns(); } // GridColumnWidthChanged
} // ThumbPreviewMouseMove // ---------------------------------------------------------------------- private void ThumbPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { Thumb thumb = sender as Thumb; GridViewColumn gridViewColumn = FindParentColumn(thumb); // suppress column resizing for proportional, fixed and range fill columns if (ProportionalColumn.IsProportionalColumn(gridViewColumn) || FixedColumn.IsFixedColumn(gridViewColumn) || IsFillColumn(gridViewColumn)) { e.Handled = true; return; } } // ThumbPreviewMouseLeftButtonDown
} // ListViewUnloaded // ---------------------------------------------------------------------- private void ThumbPreviewMouseMove(object sender, MouseEventArgs e) { Thumb thumb = sender as Thumb; GridViewColumn gridViewColumn = FindParentColumn(thumb); if (gridViewColumn == null) { return; } // suppress column resizing for proportional, fixed and range fill columns if (ProportionalColumn.IsProportionalColumn(gridViewColumn) || FixedColumn.IsFixedColumn(gridViewColumn) || IsFillColumn(gridViewColumn)) { thumb.Cursor = null; return; } // check range column bounds if (thumb.IsMouseCaptured && RangeColumn.IsRangeColumn(gridViewColumn)) { double?minWidth = RangeColumn.GetRangeMinWidth(gridViewColumn); double?maxWidth = RangeColumn.GetRangeMaxWidth(gridViewColumn); if ((minWidth.HasValue && maxWidth.HasValue) && (minWidth > maxWidth)) { return; // invalid case } if (this.resizeCursor == null) { this.resizeCursor = thumb.Cursor; // save the resize cursor } if (minWidth.HasValue && gridViewColumn.Width <= minWidth.Value) { thumb.Cursor = Cursors.No; } else if (maxWidth.HasValue && gridViewColumn.Width >= maxWidth.Value) { thumb.Cursor = Cursors.No; } else { thumb.Cursor = this.resizeCursor; // between valid min/max } } } // ThumbPreviewMouseMove