【发布时间】:2019-10-15 08:34:02
【问题描述】:
我有一个RichTextBox 控件,我需要处理 CTRL + = 按键组合。 = 符号本身是Key.OemPlus。所以问题是当我按下这个组合时,KeyDown 事件并没有引发。
我尝试了不同的代码变体,Keyboard.IsKeyDown 用于两个按键,Keyboard.Modifiers 用于 CTRL 键等...
if (Keyboard.IsKeyDown(Key.OemPlus) && Keyboard.IsKeyDown(Key.LeftCtrl))
{
// do smth
}
if (Keyboard.IsKeyDown(Key.OemPlus) && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
{
// do smth
}
if (args.Key == Key.OemPlus && Keyboard.IsKeyDown(Key.LeftCtrl))
{
// do smth
}
if (args.Key == Key.OemPlus && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
{
// do smth
}
因此,上述代码尝试均无效,我在 Google 中找不到答案。如何解决这个问题?
【问题讨论】:
-
按键的顺序必须是: 1. Ctrl; 2.= (Key.OemPlus)
-
如何检测按键事件?
-
您使用的是 KeyDown 还是 PreviewKeyDown 事件?
-
我正在使用 KeyDown 事件