Mi aplicación WPF maneja prensas de teclado y específicamente el carácter # y * ya que es un teléfono VoIP.cómo capturar el carácter '#' en diferentes teclados de configuración regional en WPF/C#?
Tengo un error con los teclados internacionales, y en particular con el teclado inglés británico. Normalmente escucho la tecla 3 y si el modificador de la tecla shift está abajo, disparamos un evento para hacer cosas. Sin embargo, en el teclado británico este es el personaje '£'. Descubrí que el teclado inglés del Reino Unido tiene una clave dedicada para '#'. Obviamente, podríamos simplemente escuchar esa clave en particular, pero eso no resuelve el caso del inglés de EE. UU. Que es shift-3 y todos los innumerables otros teclados que lo ubican en otro lado.
En pocas palabras, ¿cómo puedo escuchar a un personaje en particular al presionar una tecla, ya sea un combo de tecla o una sola tecla y reaccionar a él?
He estado usando esto desde hace un tiempo y noté un error. Dos claves que devuelven el mismo resultado de GetCharFromKey. Para verificarlo, simplemente subclase un TextBox, anule PreiewKeyDown, pulse la barra espaciadora, (que es 32 caracteres), luego pulse la tecla Supr, también devuelve 32 caracteres. ¿Alguien más está viendo esto? – gcadmes
Bueno, eso fue humillante ... La primera declaración en el GetCharFromKey es el char ch = '';. Entonces, para los casos que caen en '0' o '1', el char de retorno siempre es un espacio (char) 32. (bofetada de frente) – gcadmes
Realmente debería devolver ''\ 0'' para las claves que no producen un carácter de texto, o' (char?) null'. – jnm2