我计划在我的 WPF 应用程序中添加对许多键盘上的后退和前进按钮的支持,但我正在努力让它们工作。
我已经尝试使用标准的 KeyBinding 到 BrowserBack 和 BrowserForward,没有任何乐趣。我用 ESC 键测试了代码,以确保它正常工作,并且那个键很好。
Nextup 我处理了 KeyUp 事件,但发送的密钥是“System”,这是没用的,如果我使用 KeyInterop.VirtualKeyFromKey,我只会返回 0。
我开始认为 PInvoke/捕获真正的窗口消息将是唯一的选择,但如果有人有任何好主意,我宁愿避免这种情况?
哦,键本身肯定可以工作,而且我的键盘已插入;-)
更新:他们建议使用 SystemKey 让我可以使用它:
new KeyBinding(TestCommand, new KeyGesture(Key.Left, ModifierKeys.Alt));
这似乎适用于键盘按钮,但不适用于相应的触摸“轻弹”(模拟下一个和后退)。这些轻弹在浏览器中运行良好,但根据我的 KeyUp 事件,它们发送的只是“LeftAlt”,仅此而已!
** 再次更新 ** : Rich 的评论让我明白了这一点:
this.CommandBindings.Add(new CommandBinding(NavigationCommands.BrowseBack, BrowseBack_Executed));
this.CommandBindings.Add(new CommandBinding(NavigationCommands.BrowseForward, BrowseForward_Executed));
这似乎是一种享受……也可以轻弹!