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;}的工作原理是它移动重角,但移动非常延迟,在我的手指后移动了几分之一秒。这真的是正确的方法吗?