Как изменить значение переменной если мышь отклонилась на некоторое значение WPF

Рейтинг: 1Ответов: 1Опубликовано: 30.05.2023

Я отслеживаю положение мыши в окне. Необходимо менять значение переменной если мышь отклонилась от текущего положения на 5px. Вот мой код:

private void Window_MouseMove(object sender, MouseEventArgs e)
    {
        Point currentMousePosition = Mouse.GetPosition(Application.Current.MainWindow);
        if (currentMousePosition.X == currentMousePosition.X + 5 && currentMousePosition.Y == currentMousePosition.Y + 5
            || currentMousePosition.X == currentMousePosition.X - 5 && currentMousePosition.Y == currentMousePosition.Y - 5)
        {
            mousePosition.Content = currentMousePosition;
        }
    }

Ответы

▲ 0Принят

Достаточно знать дистанцию между двумя точками, где первая точка - это старое значение, которое вы сохраняете где-то за пределами события, ну а вторая - это currentMousePosition.

    Point _lastPoint = new Point();
    private void Window_MouseMove(object sender, MouseEventArgs e)
    {
        var position = Mouse.GetPosition(Application.Current.MainWindow);
        var distance = Point.Subtract(_lastPoint, position);
        if (distance.Length >= 5)
        {
            _lastPoint = position;
            mousePosition.Content = position;
        }
        
    }