ManipulationDeltaRoutedEventArgs.IsInertial总是返回false

时间:2014-12-05 13:34:40

标签: c# .net wpf wpf-controls windows-phone-8.1

我正在开发一个Windows手机应用程序,我想估计用户在屏幕上轻弹时元素的距离。问题是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");
    }  
}

1 个答案:

答案 0 :(得分:2)

您需要启用与ManipulationModes相关的 Inertia 相关e.IsInertial才能正常工作。

例如,

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