protected void this_MouseMove(object sender, MouseEventArgs e) { if (IsMouseDown) { Cursor = Cursors.Hand; Point p = e.GetPosition(this); double dist = (_LastMouseDownPosition.X - p.X); if (_MinimumDragDistance <= Math.Abs(dist)) { _LastMouseDownPosition = p; TimeUnits tu = (RowsPresenter.Children[RowsPresenter.Children.Count - 1] as TimespanHeaderRow).TimeUnit; if (tu == TimeUnits.Hours) { CurrentTime = CurrentTime.AddType(TimeUnits.Hours, dist / GetWidth(CurrentTime, TimeUnits.Hours)); } else { CurrentTime = CurrentTime.AddType(TimeUnits.Days, ConvertDistanceToDays(dist)); } } } }