Как обнаружить двойной щелчок в приложениях Магазина Windows?

В приложениях Магазина Windows C ++ в главном окне есть событие, которое называется PointerPressed. Я пытаюсь найти способ обнаружить двойной щелчок, а не один щелчок. Я не вижу эквивалентного события PointerPressed это вызвало бы двойной щелчок мыши.

Я также проверил PointerPressed аргументы события, и он, кажется, не содержит информации о том, является ли это одиночным или двойным щелчком.

Это легко выполнить с помощью DoubleTapped собственность на GestureRecognizer, но что если я не использую распознаватель жестов? Разве нет способа обнаружить простой двойной щелчок мышью ???

Спасибо.

Редактировать: Это чистое C ++ Direct3D приложение, предназначенное для Магазина Windows, без использования XAML или чего-либо подобного пользовательского интерфейса.

2

Решение

Вероятно, это плохой ответ, поскольку он не отвечает на вопрос, но концептуально щелчок — это событие. Двойной клик состоит из двух кликов, которые являются соответственно двумя событиями. Поскольку жест состоит из нескольких таких событий, мы видим, что двойной щелчок на самом деле является жестом. Следовательно, вы, вероятно, должны использовать распознаватель жестов.

1

Другие решения

Eсть DoubleTapped событие на UIElement, Нет необходимости использовать GestureRecognizer,

1

Используйте свойство Pointer.Timestamp и проверьте, меньше ли время, прошедшее с момента последнего события нажатия кнопки мыши, чем время двойного щелчка.

Вот псевдокод:

static unsigned long long LastTimestamp = 0;
static unsigned long long DoubleClickTimeMS = 250;
if( event == mouse_down )
{
if( (Pointer->Timestamp - LastTimestamp) / 1000 <= DoubleClickTimeMS )
{
//switch event for a double-click
event = double_click;
}
LastTimestamp = Pointer->Timestamp;
}
1
По вопросам рекламы [email protected]