我想检测用户在.net 4 WPF KeyDown事件处理程序中按“添加”键。为此,我使用以下测试:
if (e.Key == Key.Add)
当用户按下Shift + 1(对应于我的键盘布局上的“添加”)时,这不会检测到这种情况。
我怎么能发现这个?我不相信测试
if (e.Key == Key.D1 && Keyboard.Modifiers == ModifierKeys.Shift)
是正确的解决方案,因为它可能映射到另一个键盘布局的其他地方。
有什么建议吗?
答案 0 :(得分:0)
您可以考虑使用KeyPress
事件处理程序。
答案 1 :(得分:0)
private void trackBarFrames_KeyDown(object sender, KeyEventArgs e)
{
switch ( e.KeyCode)
{
case Keys.Add :
// Nummeric Keypad Add
AddSomething();
break;
case Keys.Oemplus :
// Regular keyboard Add
// OemPlus is assigned to the regular keyboard key with a "Add" Sign but doesn not take shift conditions in account..!
if (e.Modifiers == Keys.Shift)
{
AddSomething();
}
break;
}
}