locked
"e.DeltaManipulation.Scale.X != 0 && e.DeltaManipulation.Scale.Y != 0“是用来判断用户是否进行了两指缩放这一行为的方法。请问又如何判明用户是否为单指滑动抬起? RRS feed

  • 问题

  • e.DeltaManipulation.Scale.X != 0 && e.DeltaManipulation.Scale.Y != 0

    这一句C#代码是用来判断用户是否进行了两指缩放这一行为的方法。请问判明用户是否为“单指滑动抬起”的代码怎么写?

    2014年7月24日 9:33

答案

  • 这句代码是为了排除用户只是点击一下而触发滑动事件。是那里。

    www.bcmeng.com

    • 已标记为答案 (C)sharp.sq 2014年7月31日 11:16
    2014年7月31日 4:43

全部回复

  • 解决了吗?
    2014年7月28日 1:25
  • 利用平移变换写。在ManipulationDelta事件中利用它的Cumulative属性,来获取它整个滑动的所有改变量,不过记得要加上,  e.Complete()。Complete()事件可以用来消除惯性。我在2048游戏中处理方向的代码如下,你可以参考下:

    distanceX = e.Cumulative.Translation.X;
                distanceY = e.Cumulative.Translation.Y;
                e.Complete();
                if (Math.Abs(distanceX) < 5 && Math.Abs(distanceY) < 5)
                    return;
                if (Math.Abs(distanceX) > Math.Abs(distanceY))
                {
                    if (distanceX > 0)
                        MoveRight();
    
                    else
                        MoveLeft();
    
                }
                else
                {
                    if (distanceY > 0)
                      MoveDown();
    
                    else
                        MoveUp();
    
                }


                                                                         

    www.bcmeng.com

    2014年7月29日 2:07
  •             if (Math.Abs(distanceX) < 5 && Math.Abs(distanceY) < 5)
                    return;

    谢谢!
    这一句代码起什么作用?您提供的代码应该是在ManipulationDelta事件的C#代码中使用吧?是不是这里?

            private void ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e)
     {
     }

    2014年7月31日 2:32
  • 这句代码是为了排除用户只是点击一下而触发滑动事件。是那里。

    www.bcmeng.com

    • 已标记为答案 (C)sharp.sq 2014年7月31日 11:16
    2014年7月31日 4:43