コード例 #1
0
    DateTime GetCurrentDateTime()
    {
        HitTimeCellInfo hitTimeCellInfo = HitTimeCellInfo;

        if (hitTimeCellInfo == null)
        {
            return(prevDate);
        }
        prevDate = hitTimeCellInfo.ViewInfo.Interval.Start + hitTimeCellInfo.TimeShift;
        return(prevDate);
    }
コード例 #2
0
    protected virtual void AppointmentResizeHandler(object sender, AppointmentResizeEventArgs e)
    {
        HitTimeCellInfo hitTimeCellInfo = HitTimeCellInfo;

        if (hitTimeCellInfo == null)
        {
            return;
        }
        Rect timeCellBounds = hitTimeCellInfo.Bounds;

        double borderPos     = 0d;
        double mousePosition = 0d;

        if (control.ActiveViewType == SchedulerViewType.Timeline)
        {
            mousePosition = MousePosition.X;
            borderPos     = e.ResizedSide == ResizedSide.AtStartTime ? timeCellBounds.X : timeCellBounds.X + timeCellBounds.Width;
        }
        else
        {
            borderPos     = e.ResizedSide == ResizedSide.AtStartTime ? timeCellBounds.Y : timeCellBounds.Y + timeCellBounds.Height;
            mousePosition = MousePosition.Y;
        }

        if (Math.Abs(mousePosition - borderPos) > 1)
        {
            TimeSpan cellTimeShift = hitTimeCellInfo.TimeShift;
            if (e.ResizedSide == ResizedSide.AtStartTime)
            {
                if (e.SourceAppointment.End > e.HitInterval.Start + cellTimeShift)
                {
                    e.EditedAppointment.Start = e.HitInterval.Start + cellTimeShift;
                    e.EditedAppointment.End   = e.SourceAppointment.End;
                }
            }
            else
            if (e.HitInterval.Start + cellTimeShift > e.SourceAppointment.Start)
            {
                e.EditedAppointment.Start = e.SourceAppointment.Start;
                e.EditedAppointment.End   = e.HitInterval.Start + cellTimeShift;
            }
            e.Handled = true;
        }
    }