【发布时间】:2020-06-11 21:17:19
【问题描述】:
在 WPF 中,我有一个 Window_KeyDown 事件,当用户按下 shift 时,它会改变鼠标光标的形状。它按预期工作,除非我点击了另一个应用程序。所以我添加了一个这样的 Window_MouseEnter 事件来在鼠标重新进入我的应用程序时获取键盘焦点:
private void Window_MouseEnter(object sender, MouseEventArgs e)
{
IInputElement b = Keyboard.Focus(this);
this.Focus();
Debug.WriteLine(b + DateTime.Now.ToLongTimeString());
}
当鼠标进入应用程序时,我可以看到 MouseEnter 事件触发(使用调试行),但我的应用程序在我单击应用程序之前仍然没有收到键盘事件。
这很烦人,因为当鼠标进入我的应用程序中的控件时,鼠标光标会正确更改,所以人们会期望事情能正常工作,但 shift-mouse 功能在单击后才会起作用。
我错过了什么?
【问题讨论】: