c# wpf textbox mouse lost-focus

c# - ¿El usuario usó el teclado o el mouse para salir de WPF TextBox?



lost-focus (1)

Tengo un controlador para el evento PreviewLostKeyboardFocus de TextBox. Se dispara cuando salgo del TextBox usando el teclado (tecla Tab) o el mouse (haciendo clic en otro TextBox en el formulario).

El controlador toma un KeyboardFocusChangedEventArgs , que tiene una propiedad llamada KeyboardDevice , que no es nula en ninguno de los escenarios (esperaba encontrar un null aquí al usar el mouse).

Pregunta: ¿Cómo puedo saber si un usuario usó el teclado o el mouse para dejar un WPF TextBox?


El e.KeyboardDevice.GetKeyStates (Key.Tab) (donde e es de tipo KeyboardFocusChangedEventArgs) informa:

  • Ninguno (cuando se usó el mouse para cambiar el foco)
  • Down, Toggled (cuando se usó TAB para salir del TextBox)

¿Eso funcionaría para ti?