[我正在用UWP和C#编写游戏,我希望玩家能够同时(或几乎同时)按下左右鼠标按钮来指示一个动作。
一个按钮有一个事件很容易,但是在事件中,我想查看另一个按钮是否被按下。
建议这样做:Window.Current.CoreWindow.GetKeyState(Windows.System.VirtualKey.RightButton).HasFlag(CoreVirtualKeyStates.Down)
但不是-对于未首先检测到的按钮,它始终返回false。
有什么建议吗?
对于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;
}