如何找到鼠标移动方向?

时间:2014-05-26 07:56:43

标签: c# wpf wpf-controls

我需要从鼠标被按下的那一刻起找出鼠标的方向(左或右)。

我只能使用事件OnMouseMove。

使用以下方法我无法获得e.GetPosition(this).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;
        }
    }

1 个答案:

答案 0 :(得分: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.