如何在排除某些区域的同时进行触摸检测?

时间:2019-06-13 10:47:03

标签: c# uwp

我想检测屏幕上的触摸,然后触发一些操作。但是我需要排除一些区域,例如一个翻转窗口。这意味着在翻转视图窗口内,没有触摸检测,只有翻转动作起作用。

使用以下代码,它将检测整个屏幕上的触摸动作。但这不是我想要的。

Windows.UI.Input.GestureRecognizer gr = new Windows.UI.Input.GestureRecognizer();
this.PointerPressed += MainPage_PointerPressed;

        void MainPage_PointerPressed(object sender, PointerRoutedEventArgs e)
        {
            var ps = e.GetIntermediatePoints(null);
            if (ps != null && ps.Count > 0)
            {
                gr.ProcessDownEvent(ps[0]);
                e.Handled = true;
            }

            my_action();
        }

1 个答案:

答案 0 :(得分:0)

  

如何在排除某些区域的同时进行触摸检测?

PointerPressed事件将通过FlipView冒泡到Page。如果您没有在FlipViewhandle进行此事件,则页面最终将捕获PointerPressed。根据您的要求,您需要在冒泡之前先处理FlipView PointerPressed

public TestPage()
{
    this.InitializeComponent();
    this.PointerPressed += TestPage_PointerPressed;
    FFlipView.PointerPressed += FFlipView_PointerPressed;
}

private void FFlipView_PointerPressed(object sender, PointerRoutedEventArgs e)
{
    e.Handled = true;
}

private void TestPage_PointerPressed(object sender, PointerRoutedEventArgs e)
{

}