Как сделать обнаружение касания, исключая некоторые области? - PullRequest
2 голосов
/ 13 июня 2019

Я хочу обнаружить касание на экране, а затем вызвать некоторые действия. Но мне нужно исключить некоторые области, например, g. окно флипвью. Это означает, что внутри окна флипвью нет сенсорного распознавания, работает только флип.

С приведенным ниже кодом, он будет обнаруживать действие касания на весь экран. Но это не то, что я хочу.

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 голосов
/ 14 июня 2019

Как сделать обнаружение касания, исключая некоторые области?

Событие PointerPressed будет проходить через FlipView на страницу. Если вы не обработаете это событие в FlipView, и страница, наконец, поймает 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)
{

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...