7

我想检测何时在 WPF 应用程序中按下 Ctrl-C 之类的组合。我在网上读到的内容是在 KeyDown(或 KeyUp)事件中使用类似以下内容:

if ((Keyboard.Modifiers == ModifierKeys.Control) && (e.Key == Key.S))
{
    MessageBox.Show("Save!");
}

我只是想了解这是如何工作的。据我了解, e.Key 包含触发事件的按下键, Keyboard.Modifiers 包含有关 Control 键状态的信息now。假设在处理 KeyDown 事件时 Control 键仍处于关闭状态是否安全?

例如,我重新启动 Firefox,它加载了一堆标签,同时我在我的应用程序中按了 Ctrl-S。到达 KeyDown 有延迟,应用程序认为只有 S 被按下。

谢谢

4

1 回答 1

6

您可以改用KeyBindings它们,它们定义完整的手势而没有这种分离。

于 2012-04-30T17:51:07.557 回答