【问题标题】:How to find Mouse movement direction?如何找到鼠标移动方向?
【发布时间】:2014-05-26 07:56:42
【问题描述】:

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

我只能使用 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;
        }
    }

【问题讨论】:

    标签: c# wpf wpf-controls


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多