Как я могу использовать события мыши и касания на одной и той же кнопке?

gSalzmann спросил: 12 мая 2018 в 04:32 в: c#

У меня есть кнопка с 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 ответ

Ajay Gupta ответил: 12 мая 2018 в 04:16

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

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();
}