Как использовать события мыши и касания в одной кнопке? - PullRequest
0 голосов
/ 05 июня 2018

У меня есть кнопка с Click="Window_Click" и TouchDown="Window_Touch".Когда я нажимаю не сенсорные устройства , это работает просто отлично, но когда я нажимаю сенсорные устройства , иногда у меня появляется другая кнопка в фокусе, и касание вызывает два события.По сути, когда я касаюсь кнопки, они выполняют оба события, как я могу создать только одно событие для обоих поведений или как я могу «остановить» / не выполнить события щелчков при касании вещей?

private void Window_Click(object sender, RoutedEventArgs e)
{
    functionOne();
}
private void Window_Touch(object sender, TouchEventArgs e)
{
    functionOne();
}

1 Ответ

0 голосов
/ 06 июня 2018

Вам нужно отлавливать и обрабатывать повторяющиеся звонки на событие.Вы можете попытаться установить обработанное логическое значение, чтобы событие щелчка знало, обрабатывало ли событие касания событие или нет (событие касания должно запускаться первым).Как то так ...

private bool handled = false;
private void Window_Click(object sender, RoutedEventArgs e)
{
    if(!handled)
    functionOne();
}
private void Window_Touch(object sender, TouchEventArgs e)
{
    handled = true;
    functionOne();
}
...