用户是否使用键盘或鼠标离开WPF TextBox?

我有一个TextBox的PreviewLostKeyboardFocus事件的处理程序。 当我使用键盘(Tab键)或鼠标(通过单击表单上的另一个TextBox)离开TextBox时,它会触发。

处理程序采用KeyboardFocusChangedEventArgs ,它有一个名为KeyboardDevice的属性,在任一场景中都不为空(我希望在使用鼠标时在这里找到null )。

问题:如何判断用户是否使用键盘或鼠标离开WPF TextBox?

e.KeyboardDevice.GetKeyStates(Key.Tab) (其中e是KeyboardFocusChangedEventArgs类型)报告:

  • (当鼠标用于改变焦点时)
  • 向下,切换 (当TAB用于离开TextBox时)

这对你有用吗?