我必须在Window中监听键盘事件,但是如果我使用以下代码:
MyWindow.KeyDown += new KeyEventHandler(MainWindow_KeyDown);
我没有在其他控件(例如文本框)内触发事件。如何从ALL控件获取事件并停止将事件传播到其原始控件?
编辑
我尝试了以下代码:
EventManager.RegisterClassHandler(typeof(Window), Window.KeyDownEvent, new KeyEventHandler(MainWindow_KeyDown));
我在大多数情况下都可以工作,但是例如当我在文本框中时,它没有获得HOME键。
答案 0 :(得分:2)
this.PreviewKeyDown += MainWindow_PreviewKeyDown;
事件处理程序:
private void MainWindow_PreviewKeyDown(object sender, KeyEventArgs e)
{
// do some stuff
e.Handled = true // Stops propagating the event
}