为什么手势/操作无法正常运行Windows 10 UWP

时间:2016-11-16 20:55:08

标签: c# xaml win-universal-app windows-10-universal windows-10-mobile

我有一个针对Windows 10 Mobile的Windows 10 UWP应用程序,但我也在使用Microsoft Surface和我的鼠标进行测试。我根本无法让Manipulation工作来检测触摸事件。基本上,我想处理一个框架内的滑动(问题不是框架,也尝试了矩形作为测试,并且也没有工作)。当我运行应用程序并尝试用手指轻扫或使用鼠标时,我无法获取后面代码中的任何事件。尝试过多种设备以及多种方法。在大多数情况下,我正在关注我在SO和MSDN上阅读的所有内容,这使得它更令人沮丧。我在这里想念的是什么?

这是页面的XAML。在此示例中,我在XAML中显式设置事件处理程序。但是,我也尝试在控件后面的代码中创建它。都没有工作。

         <!--<Rectangle Name="TouchArea" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="4" ManipulationMode="All"/>-->
    <Frame Name="MainPageFrame" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="4" ManipulationMode="All" ManipulationStarted="MainPageFrame_OnManipulationStarted">

    </Frame>

然后在代码中

    private void MainPageFrame_OnManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
    {

    }

还试过这个:

    public MainPage()
    {
        this.InitializeComponent();
        MainPageFrame.ManipulationInertiaStarting += MainPageFrame_ManipulationInertiaStarting;
    }

    private void MainPageFrame_ManipulationInertiaStarting(object sender, ManipulationInertiaStartingRoutedEventArgs e)
    {
        if (e.Cumulative.Translation.X >= 300)
        {
            //Swipe Right
            e.Handled = true;
        }
        if (e.Cumulative.Translation.X <= 300)
        {
            //Swipe Left
            e.Handled = true;
        }
    }

最终我要做的就是检测用户在框架内滑动时,左右惯性,以便我可以更改Frame.Navigate。这与Pivot的工作方式类似,但我不能使用Pivot,所以我试图改为这样做。

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试为您或您正在跟踪操作的其他元素设置Background="Transparent"。如果没有设置背景,则可能无法正确注册操作事件。