So ich die approach by sipwiz bevorzugt, weil ich es nicht täte Ich möchte alle Tastenkombinationen deaktivieren (ich möchte immer noch ALT-Left usw. verwenden, nur nicht die Rücktaste).
Für mich mit einem WPF NavigationWindow, Überschreiben der OnKeyDown
Methode überhaupt nicht funktioniert, das Fenster immer noch zurück navigiert, wenn ich die Rücktaste gedrückt habe. Das Überschreiben der OnPreviewKeyDown
schien am Anfang zu funktionieren, aber dann stieß ich auf Probleme, wenn ich die Rücktaste brauchte, um mit Textfeldern zu arbeiten. So
Ich habe, was ich aus dem approach by Ed Andersen gelernt und ich fügte den folgenden Code zu meinem Navigation Konstruktor:
KeyGesture backKeyGesture = null;
foreach(var gesture in NavigationCommands.BrowseBack.InputGestures)
{
KeyGesture keyGesture = gesture as KeyGesture;
if((keyGesture != null) &&
(keyGesture.Key == Key.Back) &&
(keyGesture.Modifiers == ModifierKeys.None))
{
backKeyGesture = keyGesture;
}
}
if (backKeyGesture != null)
{
NavigationCommands.BrowseBack.InputGestures.Remove(backKeyGesture);
}
Wenn er Navigation gemeint, dann könnte sich die Situation etwas komplexer sein, als Sie wahrscheinlich zu handle Alt + Links und einige Maustasten. – Joey
Dies sollte eigentlich das PreviewKeyDown-Ereignis behandeln, andernfalls wird der Tastendruck nicht abgefangen, wenn ein anderes Steuerelement den Fokus hat (wie TextBox). Da er nicht gesagt hat, warum er den Rückschritt-Schlüssel deaktivieren möchte, möchte er vielleicht in den Eingangskontrollen unterstützen. –
Hey Abe, es hat PreviewKeyDown Veranstaltung funktioniert. Vielen Dank. –