Je préfère le approach by sipwiz parce que je ne l'ai pas vouloir désactiver tous les raccourcis clavier (je veux toujours utiliser ALT-Gauche etc juste pas l'espace arrière). Pour moi en utilisant un WPF NavigationWindow, en remplaçant la méthode OnKeyDown
ne fonctionnait pas du tout, la fenêtre naviguait encore en arrière quand j'ai appuyé sur la touche Retour arrière. Surcharger le OnPreviewKeyDown
a semblé fonctionner au début, mais j'ai ensuite rencontré des problèmes lorsque j'avais besoin de la touche Backspace pour travailler avec des zones de texte.
Je pris ce que j'appris de la approach by Ed Andersen et j'ajouté le code suivant à mon constructeur NavigationWindow:
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);
}
S'il voulait dire la navigation, la situation est peut-être un peu plus complexe, comme vous avez probablement manipulez Alt + Left et quelques boutons de la souris. – Joey
Cela devrait en fait gérer l'événement PreviewKeyDown, sinon si un autre contrôle a le focus (comme TextBox), la touche ne sera pas interceptée. Comme il n'a pas dit pourquoi il veut désactiver la touche de retour arrière, peut-être qu'il veut le soutenir dans les contrôles d'entrée. –
Hey Abe, cela a fonctionné événement PreviewKeyDown. Merci beaucoup. –