Мне нужно узнать направление (Влево или Вправо) мыши с момента нажатия мыши.
Я могу использовать только событие OnMouseMove.
Используя следующий метод, я не могу получить направление как e.GetPosition (это).X это то же самое значение, когда мышь перемещается и когда нажимается.
Любая идея, как его решить?
protected override void OnMouseMove(MouseEventArgs e)
{
currentPositionX = e.GetPosition(this).X;
if (e.LeftButton == MouseButtonState.Pressed)
{
double deltaDirection = currentPositionX - e.GetPosition(this).X;
direction = deltaDirection > 0 ? 1 : -1;
}
}
Ваше решение почти завершено. Вам просто нужно проверить текущую позицию отдельно для обоих случаев: когда кнопка нажата, а когда нет:
protected override void OnMouseMove(MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
double deltaDirection = currentPositionX - e.GetPosition(this).X;
direction = deltaDirection > 0 ? 1 : -1;
currentPositionX = e.GetPosition(this).X;
}
else
{
currentPositionX = e.GetPosition(this).X;
}
}
Перемещение вправо приведет к -1 и перемещению влево возвращает 1.