обнаруживать одновременные щелчки правой и левой мышью - PullRequest
0 голосов
/ 24 октября 2019

Я пишу игру на UWP и C # и хочу, чтобы игрок мог указывать действие, нажимая левую и правую кнопки мыши одновременно (или почти).

ЭтоДостаточно просто иметь событие для одной кнопки, но внутри события я хочу посмотреть, была ли нажата другая кнопка.

Было предложено, чтобы это работало: Window.Current.CoreWindow.GetKeyState(Windows.System.VirtualKey.RightButton).HasFlag(CoreVirtualKeyStates.Down), но это не так -всегда возвращает false для кнопки, которая не была обнаружена первой.

Есть предложения?

1 Ответ

0 голосов
/ 24 октября 2019

Для события PointerMoved, здесь можно обрабатывать несколько одновременных вводов с помощью кнопки мыши, и при тестировании, при одновременном нажатии левой и правой кнопок мыши (или почти) одновременно, событие будет запущено. Таким образом, вы можете попытаться использовать это событие, чтобы судить.

private void StackPanel_PointerMoved(object sender, PointerRoutedEventArgs e)
{
    if (e.Pointer.PointerDeviceType == PointerDeviceType.Mouse && e.Pointer.IsInContact)
    {
         var p = e.GetCurrentPoint((UIElement)sender);
         if (p.Properties.IsLeftButtonPressed && p.Properties.IsRightButtonPressed)
         {
             // do something               
         }

    }
    e.Handled = true;
}
...