Exemplo n.º 1
0
        private void MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (_isMouseCaptured)
            {
                _isMouseCaptured = false;
                Element.ReleaseMouseCapture();

                var isMove = (DateTime.Now - _lastMoveTime).TotalMilliseconds < MOUSE_MOVE_MAX_PERIOD;
                ScrollStoppedAll(ActiveTouchManagers.Skip(_currentIndex), _absoluteMove, _relativeMove, isMove);
            }
        }
Exemplo n.º 2
0
        public void MouseMove(object sender, MouseEventArgs e)
        {
            if (_isMouseCaptured)
            {
                var mousePosition = GetMousePosition(e);

                if (!_isContentCaptured)
                {
                    // Init AllScrollDirections
                    if (AllScrollDirections == null)
                    {
                        AllScrollDirections = GetTotalScrollDirections(indexFrom: _currentIndex);

                        var nextIndex = ActiveTouchManagers.IndexOf(this) + 1;

                        // No more controls or single direction or I use both directions
                        if (nextIndex >= ActiveTouchManagers.Count ||
                            !AllScrollDirections.IsHorizontal ||
                            !AllScrollDirections.IsVertical ||
                            (ScrollDirections.IsHorizontal && ScrollDirections.IsVertical))
                        {
                            CaptureAnyContent(mousePosition); // This content
                            return;
                        }
                    }

                    var absoluteMove = mousePosition - MouseDownPosition;
                    if (IsExceededRange(AllScrollDirections, absoluteMove)) // IsExceededRange needs to AllScrollDirections
                    {
                        CaptureAnyContent(mousePosition);                   // Any content
                        _isDominanceHorizontal = Math.Abs(absoluteMove.X) >= Math.Abs(absoluteMove.Y);
                        return;
                    }

                    return;
                }

                _relativeMove = mousePosition - _lastMousePosition;
                if (_relativeMove.X == 0 && _relativeMove.Y == 0)
                {
                    return; // Fix bug
                }
                _absoluteMove      = mousePosition - _startMousePosition;
                _lastMousePosition = mousePosition;
                _lastMoveTime      = DateTime.Now;
                ScrollAll(ActiveTouchManagers.Skip(_currentIndex), _absoluteMove, _relativeMove, _isFirst);
                _isFirst = false;
            }
        }