如何在WPF的CefSharp中标记F10密钥?

时间:2019-01-11 13:36:07

标签: c# wpf chromium cefsharp

我对CefSharp for WPF中的密钥处理有疑问。我实现了IKeyboardHandler接口,而我的ChromiumWebBrowser将其用作KeyboardHandler。主要逻辑在OnPreKeyEvent方法中,如果我的密钥被处理,我将返回true,否则返回false。

问题是,如果按F10键,则屏幕将失去焦点,因为F10是系统键并切换Windows菜单。我如何让CefSharp知道不将F10中继到OS进行处理,以便我的屏幕保持焦点?

在标准WPF中,会有一个e.Handled,我可以将其设置为true,但是在这种情况下,则没有(根据文档的返回值可以做到这一点)。

1 个答案:

答案 0 :(得分:0)

正如Alex Maitland所说,做到这一点的方法是从ChromiumWebBrowser继承并重写OnPreviewKeyUp和OnPreviewKeyDown方法。在这里,您可以将KeyEventArgs标记为已处理。在这种情况下,不需要从IKeyboardHandler继承。