Por lo tanto, estoy usando un control de cuadrícula wpf en tercera parte que está codificado para aceptar solo ciertas teclas para realizar reacciones de acceso directo y una de ellas es Shift-Tab. Sin embargo, mi base de usuarios está acostumbrada a presionar las flechas hacia arriba y hacia abajo y decirles 'no' no es una opción en este momento. Así que mi única opción, creo, es interceptar la tecla de previsualización y enviar una combinación de pulsaciones de tecla diferente.WPF - Send Keys Redux
Ahora, estoy usando el siguiente código que he encontrado en aquí para enviar una pestaña cuando el usuario pulsa la flecha hacia abajo:
if (e.Key == Key.Down)
{
e.Handled = true;
KeyEventArgs eInsertBack = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, Key.Tab);
eInsertBack.RoutedEvent = UIElement.KeyDownEvent;
InputManager.Current.ProcessInput(eInsertBack);
}
Sin embargo, este método está limitado en que no parece ser capaz de simular una presión del botón Shift? WPF parece mirar los Keyboard.Modifiers para poder 'leer' un Shift o Ctrl, pero no parece haber ninguna posibilidad de establecer el Keyboard.Modifiers programáticamente. ¿Alguna ayuda por ahí?
Gracias, pero no pienses que es esto. Lo que estoy buscando es una combinación de pulsaciones de teclas de Shift-Tab al mismo tiempo. – mmccurrey
hmm ya veo. Es extraño porque usar Key.LeftShift | Key.Tab da como resultado CtrlLeft por alguna razón extraña pero probablemente buena. Tendré un poco más de investigación cuando pueda –
@REA_ANDREW: Ves que esto sucede porque 'Llaves' no son banderas que se pueden combinar, es una enumeración donde' Key.LeftShift = 116' y 'Key.Tab = 3'. El resultado es 119 que se asigna a 'Key.RightCtrl = 119' (Presione F12 en Visual Studio cuando el cursor esté en' Key' para abrir la definición). –