Ich möchte Enter-Taste als Tab-Taste in meiner gesamten WPF-Anwendung, dh überall in meiner Anwendung zu interpretieren, wenn Benutzer die Eingabetaste drücken Ich möchte das nächste fokussierbare Steuerelement fokussieren, außer wenn die Schaltfläche fokussiert ist. Gibt es eine Möglichkeit, dies im Anwendungslebenszyklus zu tun? Kann mir jemand ein Beispiel geben?
Vielen Dank!
Interpretieren als Registerkarte eingeben WPF
Antwort
Sie können meinen Code EnterKeyTraversal attached property verwenden, wenn Sie möchten. Fügen Sie es zu den Top-Level-Container auf einem WPF-Fenster, und alles wird innen behandeln, als Tab eingeben:
<StackPanel my:EnterKeyTraversal.IsEnabled="True">
...
</StackPanel>
das Problem, das ich bin vor, dass, wenn der Fokus auf einem Knopf kommt, ich will, um den Befehl auszuführen und unterwegs Index der nächsten Registerkarte Ist das möglich? –
woodyiii, Es gibt eine Funktion in der UIElement
PredictFocus()
genannt, der durch seinen Namen seine Funktion kennen, dann können Sie Überprüfen Sie, ob dieses Element aktiviert ist oder nicht, um den Fokus darauf zu verschieben oder nicht ...
Ich habe das Problem von Woodyiii gelöst, indem ich ein FrameworkElement.Tag (dessen Wert IgnoreEnterKeyTraversal ist) zu bestimmten Elementen (Buttons, Comboboxen, oder irgendetwas, das ich die Enter-Schlüsselüberquerung ignorieren möchte) in meinem XAML. Ich suchte dann nach diesem Tag & Wert in der angefügten Eigenschaft. Wie so:
if (e.Key == Key.Enter)
{
if (ue.Tag != null && ue.Tag.ToString() == "IgnoreEnterKeyTraversal")
{
//ignore
}
else
{
e.Handled = true;
ue.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
}
Stellen Sie sicher, dass dies im 'KeyDown'-Event und nicht in' PreviewKeyDown' erfolgt oder das Caret sich nicht bewegt. Sie geben auch nicht an, was '' ue' 'ist, aber für mich muss es 'e.Quelle' sein. – Conrad
Das ist gut. Es funktioniert auf TextBox, wenn es Tag = "IgnoreEnterKeyTraversal" aber ich möchte das gleiche auf ComboBox mit IsEditable = "True". In diesem Szenario funktioniert dein Trick nicht. Können Sie mir sagen, wie kann ich das tun? – Vishal
Um es ganz Projekt ändern müssen Sie diese
In App.xaml.cs tun:
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)); } }
Compile. Und es getan. Jetzt können Sie Enter wie Tab verwenden. Hinweis: Diese Arbeit für Elemente im Raster
- 1. Interpretieren Texteingabe als PHP
- 2. Verwenden der Eingabetaste als Registerkarte in WPF DataGrid
- 3. Animation als Platzhalter eingeben
- 4. WPF Datagrid -DataGridTemplateColumn Registerkarte Fokusproblem
- 5. sed oder ähnlich: nicht als Regex interpretieren, als fester String/Literal interpretieren
- 6. Interpretieren von URL-Pfad als Parameter
- 7. Java SimpleDateFormat interpretieren Parse-String als UTC
- 8. Interpretieren/Testen von Strings in ANTLRWorks 2
- 9. Wie setze ich WPF Registerkarte Registerkarte Tabs auf der Seite
- 10. WPF Ribbon Registerkarte Ansicht in Designer
- 11. Verzögerung beim Öffnen der Registerkarte über die Chrome-Erweiterung eingeben
- 12. WPF RichTextBox Registerkarte Auswahl Systemspeicher auffressen!
- 13. Wie Benutzersteuerelement in Registerkarte Steuerelement in WPF
- 14. Suchen Aktive/Open Registerkarte in WPF
- 15. Interpretieren Sitzungsaktivität
- 16. Wie erstellt man eine neue Registerkarte mit Stil als Registerkarte Beschreibung für Lagerartikel?
- 17. WPF RoutedUICommand: Wie kann man einen Schlüssel eingeben, der als Verknüpfung registriert ist?
- 18. ausführen interpretieren C++?
- 19. Wie interpretieren Go stacktrace
- 20. Interpretieren von WAV-Daten
- 21. Hilfe interpretieren will_paginate docs?
- 22. Objekt ist nil aber Code interpretieren nicht als Null
- 23. Interpretieren von Textdateien und Verwenden von Strings als Variablen
- 24. while-Schleife und interpretieren von Werten als wahr oder falsch
- 25. Browser zwingen, XHR-Antwort als gzip zu interpretieren
- 26. Browser zu interpretieren Javascript String als HTML-Tag
- 27. jquery text(), interpretieren <br> als neue Linie
- 28. Interpretieren Sie eine std :: string als std :: vector von char_type?
- 29. WPF - Klasseneigenschaft als Datenauslöser
- 30. WPF-Benutzersteuerung als Elementvorlage
Babysmash von Scott Hanselman verwendet einig Keyboard überschreibt – bendewey