我有一个WPF MainWindow并尝试对某个组合键(CTRL + F4)作出反应。我为测试目的注册了以下方法:
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
Log.AsInfo("PreviewKeyDown");
}
private void Window_KeyDown(object sender, KeyEventArgs e)
{
Log.AsInfo("KeyDown");
}
private void Window_KeyUp(object sender, KeyEventArgs e)
{
Log.AsInfo("KeyUp");
}
private void Window_PreviewKeyUp(object sender, KeyEventArgs e)
{
Log.AsInfo("PreviewKeyUp");
}
疯狂的是,这些方法仅在我第一次与应用程序交互后触发:
它是如何工作的:
工作原理:
有什么想法吗?我甚至无法调试这种情况,因为首先没有调用任何处理程序方法。我甚至在MainWindow构造函数中尝试了this.Focus()
,但这也无济于事。
答案 0 :(得分:0)
找到解决方案:
我使用的浏览器控件是EO.WebBrowser。似乎这个浏览器控件每次第一次都会吞下密钥交互。我通过将所需的功能绑定到WebBrowser控件的热键(如here所述)来实现快捷方式组合。所以它更像是第三方而不是WPF问题。