检测同时的左右鼠标单击

问题描述 投票:0回答:1

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

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

建议这样做:Window.Current.CoreWindow.GetKeyState(Windows.System.VirtualKey.RightButton).HasFlag(CoreVirtualKeyStates.Down)但不是-对于未首先检测到的按钮,它始终返回false。

有什么建议吗?

uwp mouse right-click simultaneous mouseleftbuttondown
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.