示例#1
0
        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));
                    }
                }
            }
        }