我抓住了这个事件,但我需要保存点击的按钮。
例如获取修饰符的方法+ e.key
这是我的代码:
protected override void OnKeyDown(KeyEventArgs e)
{
//base.OnKeyDown(e);
if (Keyboard.Modifiers == ModifierKeys.Control && e.Key == Key.E)
{
MessageBox.Show(test.ToString());
}
}
我尝试组合两个键,如
Key test = Key.Ctrl | e.Key ;
但它总是给出错误的结果,例如由于上面的代码导致Ctrl + E导致J
我想保存它,我想在所有UserControls
中使这些快捷方式通用。
答案 0 :(得分:1)
使用KeyGesture尝试这样做:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if(e.Key ==Key.E && e.KeyboardDevice.Modifiers==ModifierKeys.Control)
{
KeyGesture keyGesture = new KeyGesture(e.Key, e.KeyboardDevice.Modifiers);
if (keyGesture.Matches(null, e))
{
//This should match!
}
}
}
答案 1 :(得分:0)
好吧,因为我使用silverlight4,我将使用
Tuple<ModifierKeys, Key>
效果很好,性能很好