检测修改器键关闭

本文关键字:修改器 检测 | 更新日期: 2023-09-27 18:36:23

>我有一个 WPF 应用程序,需要在首次按下修饰键(例如 Alt 或 Control)时做出响应。无论是否同时按下其他键,都需要发生响应,因此我基本上需要能够判断这些键中的任何一个下降的瞬间。

我看到的修改键的事件行为与其他键不同,---看起来 KeyDown 事件和 PreviewKeyDown 事件实际上是在按下按钮后启动时触发的,这没有帮助。

在深入研究事件触发问题时,我创建了一个定时后台循环,用于轮询所有当前密钥状态。即使这样也不起作用---如果我按下一个修饰键,并且我没有释放该键或按任何其他键,这个民意调查错误地说修饰键实际上并没有关闭(无限期,直到按下另一个键)

我觉得我一定错过了一些基本的东西,但到目前为止没有运气。有什么想法吗?

检测修改器键关闭

您是否附加到主 Window 实例上的"Keyboard.KeyDown"事件?

<Window x:Class="WpfApplication3.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" Keyboard.KeyDown="Window_KeyDown">
</Window>
事实证明,

这种行为特定于我的环境(在 Parallels 6.0 VM 中运行 Windows 和 Visual Studio)。Parallels 必须拦截这些事件以保留一些低级 Mac OS 功能。我不确定其他 VM 设置,但这在本机 Windows 环境中看起来不是问题。