Vì vậy, tôi ưa thích approach by sipwiz bởi vì tôi đã không muốn vô hiệu hóa tất cả các phím tắt (tôi vẫn muốn sử dụng ALT-trái vv chỉ không phải là Backspace).
Đối với tôi bằng cách sử dụng WPF NavigationWindow, ghi đè phương thức OnKeyDown
không hoạt động, cửa sổ vẫn điều hướng trở lại khi tôi nhấn phím Backspace. Ghi đè số OnPreviewKeyDown
dường như hoạt động để bắt đầu nhưng sau đó tôi gặp sự cố khi tôi cần phím Backspace để làm việc với hộp văn bản.
Vì vậy, tôi lấy những gì tôi học được từ các approach by Ed Andersen và tôi đã thêm đoạn mã sau vào constructor NavigationWindow tôi:
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);
}
Nếu anh ấy có nghĩa là chuyển hướng, sau đó tình hình có thể phức tạp hơn một chút, như bạn có thể có để xử lý Alt + Left và một số nút chuột. – Joey
Điều này thực sự sẽ xử lý sự kiện PreviewKeyDown, nếu không nếu một điều khiển khác có tiêu điểm (như TextBox), thì bấm phím sẽ không bị chặn. Vì anh ta không nói tại sao anh ta muốn vô hiệu hóa phím backspace, có lẽ anh ta muốn hỗ trợ nó trong các điều khiển nhập cảnh. –
Hey Abe, nó đã hoạt động sự kiện PreviewKeyDown. Cảm ơn rất nhiều. –