Я планировал добавить поддержку кнопок «Назад» и «Вперед», которые есть на многих клавиатурах, в мое приложение WPF, но я изо всех сил стараюсь заставить их работать.
Я пытался использовать стандартную привязку клавиш к BrowserBack и BrowserForward, без радости. Я протестировал код с ключом ESC, чтобы убедиться, что он работает в принципе, и этот ключ был в порядке.
Далее я обработал событие KeyUp, но отправляемым ключом является «System», который бесполезен, и если я использую KeyInterop.VirtualKeyFromKey, я просто верну 0.
Я начинаю думать, что PInvoke / перехватывание реальных оконных сообщений будет единственным вариантом, но я бы предпочел этого, если у кого-то есть какие-нибудь яркие идеи?
О, и сами клавиши определенно работают, и моя клавиатура подключена; -)
Обновление : они предлагают использовать SystemKey, и я понял, что с ним можно работать:
new KeyBinding(TestCommand, new KeyGesture(Key.Left, ModifierKeys.Alt));
И это, кажется, работает для кнопки клавиатуры, но она не работает для соответствующего касания "щелчка" (который имитирует следующий и назад). Эти клики отлично работают в браузерах, но согласно моему событию KeyUp все, что они отправляют, это "LeftAlt" и ничего больше!
** Обновление снова **: комментарий Рича привел меня к этому:
this.CommandBindings.Add(new CommandBinding(NavigationCommands.BrowseBack, BrowseBack_Executed));
this.CommandBindings.Add(new CommandBinding(NavigationCommands.BrowseForward, BrowseForward_Executed));
Который, кажется, работает удовольствие ... щелкает тоже!