C# 如何找到鼠标移动方向?

C# 如何找到鼠标移动方向?,c#,wpf,wpf-controls,C#,Wpf,Wpf Controls,我需要从按下鼠标的那一刻起找出鼠标的方向(左或右) 我只能使用mouseMove上的事件 使用以下方法,我无法获得e.GetPosition(this.X)的方向。当鼠标移动和单击时,它的值是相同的 你知道怎么解决吗 protected override void OnMouseMove(MouseEventArgs e) { currentPositionX = e.GetPosition(this).X; if (e.LeftButton =

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

我只能使用mouseMove上的事件

使用以下方法,我无法获得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;
        }
    }

您的解决方案几乎完成了。您只需分别检查两种情况下的当前位置:按下按钮时和未按下按钮时:

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