检测修改键是否关闭?

时间:2012-06-06 21:35:30

标签: c# .net wpf

我有一个WPF应用程序需要在第一次按下修饰键(例如Alt或Control)时响应。无论是否按下其他键,都需要进行响应,所以我基本上需要能够告诉任何这些键的瞬间失效。

我看到的修饰键的事件行为与其他键不同---看起来KeyDown事件和PreviewKeyDown事件在按下按钮后实际触发,这没有用。

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

我觉得我必须遗漏一些基本的东西,但到目前为止还没有运气。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您是否附加了主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>

答案 1 :(得分:0)

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