ManipulationDeltaRoutedEventArgs.IsInertial 总是返回 false

本文关键字:返回 false IsInertial ManipulationDeltaRoutedEventArgs | 更新日期: 2023-09-27 18:33:24

我正在开发一个Windows Phone应用程序,我想估计用户在屏幕上轻拂时元素的距离。问题是ManipulationDeltaRoutedEventArgs.IsInertial总是返回 false,我无法检测到用户轻拂。

这是我ManipulationDelta事件处理程序

private void ItemList_ManipulationDelta(Object sender, ManipulationDeltaRoutedEventArgs e)
{
    double currPos = e.Position.X;
    var fwElement = (FrameworkElement)sender;
    Thickness margin = fwElement.Margin;
    margin.Left += (currPos - origin);
    if (margin.Left < marginLeft) margin.Left = marginLeft;
    fwElement.Margin = margin; 
    if (e.IsInertial)
    {
        System.Diagnostics.Debug.WriteLine("intertial");
    }  
}

ManipulationDeltaRoutedEventArgs.IsInertial 总是返回 false

您需要

启用与惯性相关的ManipulationModes才能e.IsInertial工作。

例如

this.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateInertia;