Windows 8.1 操纵DeltaroutedEventArgs中的值是如何工作的
我试图理解手势,但我很难理解它们是如何工作的 我已经输入了以下代码,但它没有返回我所期望的结果Windows 8.1 操纵DeltaroutedEventArgs中的值是如何工作的,windows-8.1,Windows 8.1,我试图理解手势,但我很难理解它们是如何工作的 我已经输入了以下代码,但它没有返回我所期望的结果 public void Rectangle_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) { System.Diagnostics.Debug.WriteLine("last positionX was {0}. Current positionX is {1}. Difference bet
public void Rectangle_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
System.Diagnostics.Debug.WriteLine("last positionX was {0}. Current positionX is {1}. Difference between the 2: {2}", _previousPositionX, e.Position.X, e.Position.X - _previousPositionX);
System.Diagnostics.Debug.WriteLine("delta x: {0}", e.Delta.Translation.X);
_previousPositionX = e.Position.X;
}
我希望这段代码能打印出如下内容
最后一个位置X为0。当前位置X为23
两者之差为2:23
增量x:23
最后一个位置是23。当前位置X为33
两者之差为2:10
增量x:10
最后一个位置是33。当前位置X为53
二比二十的差距
增量x:20
然而我得到的是
最后一个位置X是298.7872314453。当前位置X为314.760620117188
二者之差:15.972747027344
累计x:-181.818176269531
δx:-44.5818138122559
最后一个位置X为314.760620117188。当前位置X为326.009094238281
2之间的差异:11.2484741210938
累计x:-210.036361694336
δx:-28.2181797027588
最后一个位置X是326.009094238281。当前位置X为350.893920898438
二者之差:24.8848266601563
累计x:-212.509078979492
δx:-2.472729873657
e.Delta.Translation.X或e.Cumulative.Translation.X似乎都与上次调用eventhandler时e.Position.X与当前时间之间的差异不匹配。这是一个完整的刷卡手势。如何找出矩形在操纵增量的开始/结束处的位置,以及它自上一次操作以来移动了多远?我想知道矩形的当前位置在哪里,因为我不希望用户能够将其移出屏幕
谢谢使用e.Delta.Translation移动对象时,似乎总是会有延迟。即使用私有的TranslateTransform\u dragTranslation;public void Rectangle_manufactionDeltaObject发送方,manufactionDeltaRouteDeventargs e{u dragtransation.X=e.Delta.Translation.X;}的工作原理是它移动重角,但移动非常延迟,在我的手指后移动了几分之一秒。这真的是正确的方法吗?