对话框窗口“KeyDown”事件处理程序未命中(C#)

对话框窗口“KeyDown”事件处理程序未命中(C#),c#,wpf,event-handling,key-events,C#,Wpf,Event Handling,Key Events,我有一个KeyDown事件处理程序(由Visual Studio创建),用于关闭窗口的对话框: private void Window_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Escape) { this.DialogResult = false; this.Close(); } } 当我在程序中并按下退出键时,对话框会转到主屏幕的后面,而不是关闭它。我在函数中放

我有一个
KeyDown
事件处理程序(由Visual Studio创建),用于关闭窗口的对话框:

private void Window_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Escape)
    {
        this.DialogResult = false;
        this.Close();
    }
}
当我在程序中并按下退出键时,对话框会转到主屏幕的后面,而不是关闭它。我在函数中放了一个断点,它永远不会命中


以前有人遇到过这种情况吗?有人知道解决办法吗

我认为这个答案可能有帮助:


基本上,如果对话框完全为空,并且没有焦点控件,则不会引发KeyDown和Up事件。出于某种原因,只有当窗口中至少有一个可聚焦控件且该控件处于聚焦状态时,才会触发它们。

如果您按的键不是Escape,它是否会击中断点?是的。我只是做了一个测试,看看它是否能读取
空格
条。很好。这也不是我的
Escape
键。昨天我做了20个对话。这只是这一个…我很确定问题出在你展示的代码之外。您是否检查过designer.cs文件中是否有对表单的任何错误引用?它不是WinForm。。。。我希望它是那么容易。Xml
#第8行“.\..\..\HydAnalysis.xaml”((AutoSPRINKforRevit.Hydraulics.HydAnalysis)(target)).KeyDown+=new System.Windows.Input.KeyEventHandler(this.Window\u KeyDown)