Quiero interpretar la tecla Intro como la tecla Tab en toda mi aplicación WPF, es decir, en todas partes de la aplicación cuando el usuario presiona Intro Quiero enfocar el siguiente control enfocable, excepto cuando el botón está enfocado. ¿Hay alguna manera de hacerlo en el ciclo de vida de la aplicación? ¿Alguien puede darme un ejemplo?
¡Muchas gracias!
Interpretar enter como pestaña WPF
Respuesta
Puede usar mi código EnterKeyTraversal attached property si lo desea. Añadir al contenedor de alto nivel en una ventana de WPF y todo dentro tratará a entrar como pestaña:
<StackPanel my:EnterKeyTraversal.IsEnabled="True">
...
</StackPanel>
El problema que estoy enfrentando es que cuando el foco se enciende un botón, lo que quiero para ejecutar el comando y se mueven en el siguiente índice de pestañas. ¿Es posible hacerlo? –
woodyiii, hay una función en el UIElement
llamada PredictFocus()
que por su nombre conoce su función, entonces se puede compruebe si ese elemento está habilitado o no para mover el foco hacia él o no ...
Solucioné el problema de woodyiii agregando un FrameworkElement.Tag (cuyo valor es IgnoreEnterKeyTraversal) a ciertos elementos (botones, comboboxes, o cualquier cosa que quiera ignorar el recorrido de la tecla Intro) en mi XAML. Luego busqué esta etiqueta & en la propiedad adjunta. De este modo:
if (e.Key == Key.Enter)
{
if (ue.Tag != null && ue.Tag.ToString() == "IgnoreEnterKeyTraversal")
{
//ignore
}
else
{
e.Handled = true;
ue.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
}
Asegúrese de hacer esto en el evento 'KeyDown' y no en' PreviewKeyDown' o el cursor no se moverá. Además, no especifica qué 'ue' es, pero al menos para mí tiene que ser' e.Source'. – Conrad
Eso está bien. Funciona en TextBox si tiene Tag = "IgnoreEnterKeyTraversal" pero quiero lo mismo en ComboBox con IsEditable = "true". En ese escenario tu truco no funciona. ¿Puedes decirme cómo puedo hacer eso? – Vishal
para cambiarlo en todo el proyecto que tiene que hacer este
En App.xaml.cs:
protected override void OnStartup(StartupEventArgs e) { EventManager.RegisterClassHandler(typeof(Grid), Grid.PreviewKeyDownEvent, new KeyEventHandler(Grid_PreviewKeyDown)); base.OnStartup(e); } private void Grid_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) { var uie = e.OriginalSource as UIElement; if (e.Key == Key.Enter) { e.Handled = true; uie.MoveFocus( new TraversalRequest( FocusNavigationDirection.Next)); } }
compilar. Y lo hizo. Ahora puede usar enter como pestaña. Nota: Este trabajo para los elementos de la red
- 1. ¿Cómo crear un control de pestaña WPF como chevron list?
- 2. WPF autocompletebox y la tecla enter
- 3. sed o similar: no interpretar como expresiones regulares, interpretar como cadena fija/literal
- 4. ¿Puede Excel interpretar una celda como HTML?
- 5. Javascript: interpretar cadena como referencia de objeto?
- 6. pestaña jQuery "flotante" como GetSatisfaction
- 7. WPF TabControl Cambiar la pestaña seleccionada
- 8. detectar Ctrl + Enter
- 9. WPF ¿Acoplamiento como el cromo?
- 10. ¿Cómo interpretar datos binarios como un número entero?
- 11. gdb interpretar la dirección de memoria como un objeto
- 12. ¿cómo consigo eclipse para interpretar archivos .ejs como .html?
- 13. Cómo interpretar Gradle DSL
- 14. ejecutar interpretar C++?
- 15. Ext.js 4.x Ventana acoplable como pestaña
- 16. Cómo enfocar ventana/pestaña como alerta()?
- 17. Cómo interpretar Logcat
- 18. ¿Cómo interpretar iostat?
- 19. jquery contenteditable enter "¿Cómo disparo shift-enter cuando alguien presiona enter?"
- 20. ¿Hay un evento Cambiado con pestaña seleccionada en el control de pestaña WPF estándar
- 21. enviar solicitud como jsonp, interpretar respuesta como texto, usando jQuery 1.5
- 22. Cómo hacer que Enter en un TextBox actúe como botón TAB
- 23. WPF Tab Control: ¿Cómo obtengo la pestaña actualmente seleccionada?
- 24. WPF Control de ficha Prevenir cambio de pestaña
- 25. mejorada pestaña en Emacs
- 26. Interpretar zsh bindkey secuencias escapadas
- 27. NERDTree abrir en una nueva pestaña, como última pestaña en gvim?
- 28. javascript keypress enter key
- 29. Detect Enter Key C#
- 30. problema ... tecla Enter
BabySmash por Scott Hanselman utiliza algún teclado anula – bendewey