} // ThumbPreviewMouseMove // ---------------------------------------------------------------------- private void ThumbPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { var 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
} // DoResizeColumns // ---------------------------------------------------------------------- private void ThumbPreviewMouseMove(object sender, MouseEventArgs e) { var 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 (resizeCursor == null) { 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 = resizeCursor; // between valid min/max } } } // ThumbPreviewMouseMove