我有一个TextBox的PreviewLostKeyboardFocus
事件的处理程序。当我使用键盘(Tab键)或鼠标(通过单击表单上的另一个TextBox)离开TextBox时,它会触发。
该处理程序接受一个KeyboardFocusChangedEventArgs
,它有一个名为KeyboardDevice
的属性,在任何一种情况下都不是null(我希望在使用鼠标时在这里找到null
)。
问题:如何判断用户是使用键盘还是鼠标离开WPF文本框?
e.KeyboardDevice.GetKeyStates(Key.Tab)(其中e为KeyboardFocusChangedEventArgs类型)报告:
- 无(使用鼠标更改焦点时)
- 向下,切换(使用TAB键离开TextBox时)
这对你有用吗?