protected override void OnMouseWheel(MouseWheelEventArgs e) { base.OnMouseWheel(e); var time = TimeEnd - TimeStart; if (e.Delta < 0) { if (time.Days > 182) { return; } TimeStart = TimeStart.AddDays(-1); TimeEnd = TimeEnd.AddDays(1); } else { if (time.Days < 7) { return; } TimeStart = TimeStart.AddDays(1); TimeEnd = TimeEnd.AddDays(-1); } isDirty = true; InvalidateVisual(); }
protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); var pos = e.GetPosition(this); var rHeader = new Rect(0, 0, ActualWidth, rowMonthAndDay); if (rHeader.Contains(pos)) { Cursor = Cursors.Hand; } else { Cursor = Cursors.Arrow; } if (isDown) { switch (mode) { #region Move case DragMode.Move: { if (mouseStartMoveX - pos.X > 20) { TimeStart = TimeStart.AddDays(1); TimeEnd = TimeEnd.AddDays(1); mouseStartMoveX = pos.X; isDirty = true; } else if (mouseStartMoveX - pos.X < -20) { TimeStart = TimeStart.AddDays(-1); TimeEnd = TimeEnd.AddDays(-1); mouseStartMoveX = pos.X; isDirty = true; } break; } #endregion } } InvalidateVisual(); }