在 WPF 的鼠标事件中,如何判断特定的按键是否被按下?

在某些软件的交互中,直接点击按钮和按住某个按键后点击按钮的效果是不同的。比如要对 iPhone 进行 DFU 刷机,就必须按下“Shift”键之后,再点击“恢复”按钮。

在 WPF 软件开发中可以使用 Keyboard 类实现类似功能,Keyboard.IsKeyDown 方法可以检测出 Control, Shift, Alt 是否被按下。.

检测 Shift 是否被按下

if (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)){ /* Your code */ }

检测 Control 是否被按下

if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)){ /* Your code */ }

检测 Alt 是否被按下

if (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt)){ /* Your code */ }

参考

Keyboard 类 :https://learn.microsoft.com/en-us/dotnet/api/system.windows.input.keyboard?redirectedfrom=MSDN&view=windowsdesktop-7.0