Exemplo n.º 1
0
    private void RaiseDragEvents(InputDeltaArgs args)
    {
        DragEventArgs e = new DragEventArgs(args);

        if (args.DeltaTranslation.X != 0 && _dragLock == DragLock.Horizontal)
        {
            RaiseHorizontalDrag(e);
        }
        else if (args.DeltaTranslation.Y != 0 && _dragLock == DragLock.Vertical)
        {
            RaiseVerticalDrag(e);
        }
    }
Exemplo n.º 2
0
    protected void NotifyMove(InputDeltaArgs args)
    {
        if (Math.Abs(args.CumulativeTranslation.X) > DeadZoneInPixels.Width || Math.Abs(args.CumulativeTranslation.Y) > DeadZoneInPixels.Height)
        {
            if (!_dragging)
            {
                ReleaseMouseCaptureAtGestureOrigin();
            }

            _dragging = true;

            if (_dragLock == DragLock.Unset)
            {
                double angle = GestureHelper.AngleFromVector(args.CumulativeTranslation.X, args.CumulativeTranslation.Y) % 180;
                _dragLock = angle <= 45 || angle >= 135 ? DragLock.Horizontal : DragLock.Vertical;
            }
        }

        if (_dragging)
        {
            RaiseDragEvents(args);
        }
    }