我正在尝试使用WPF 3.5sp1进行Ctrl+Shift+0键位映射,但绑定没有触发。 我使用的XAML代码如下:
<KeyBinding Gesture="Ctrl+Shift+D0" Command="Blah"/>
我也尝试过以下方法:
<KeyBinding Key="D0" Modifiers="Ctrl+Shift" Command="Blah" />
还有许多其他组合键,但都不起作用。"Gesture="Ctrl+D0"" 或 "Ctrl+Shift+OemPlus" 等都能正常工作,因此我认为语法不是问题。我查看了 Key 枚举并尝试查看是否将 "Shift-D0" 重新映射为类似于 "OemParen" 的内容,但没有找到任何线索。
我甚至在我的窗口上放置了 PreviewKeyDown 处理程序,但我从未看到 KeyEvent 其中 Key == D0 且 Keyboard.ModifierKeys == Shift + Ctrl!事实上,当我按住 Ctrl+Shift 时,D0 的按下事件根本不会到达。
public MainWindow()
{
InitializeComponent();
this.PreviewKeyDown += MainWindow_PreviewKeyDown;
}
void MainWindow_PreviewKeyDown(object sender, KeyEventArgs e)
{
if ((Keyboard.Modifiers & ModifierKeys.Shift) != 0)
{
Trace.WriteLine("shift is down!");
}
Trace.WriteLine(string.Format("key: {0}, system key: {1}, modifiers {2}", e.Key, e.SystemKey, e.KeyStates));
}