0

我正在用 UWP 和 C# 编写游戏,我希望玩家能够通过同时(或几乎同时)按下鼠标左键和右键来指示动作。

为一个按钮设置一个事件很容易,但在事件中,我想查看另一个按钮是否被按下。

有人建议这应该有效: Window.Current.CoreWindow.GetKeyState(Windows.System.VirtualKey.RightButton).HasFlag(CoreVirtualKeyStates.Down)但它没有 - 它总是为没有首先检测到的按钮返回 false。

有什么建议么?

4

1 回答 1

0

对于 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;
}
于 2019-10-24T05:04:58.697 回答