代码之家  ›  专栏  ›  技术社区  ›  ZekeMarsh

如何将F10键标记为WPF在CefSharp中处理的键?

  •  1
  • ZekeMarsh  · 技术社区  · 7 年前

    我有一个关于WPF的CefSharp密钥处理的问题。我实现了IKeyboardHandler接口,我的ChromiumWebBrowser将其用作键盘处理程序。主要逻辑在OnPreKeyEvent方法中,如果处理了密钥,则返回true,否则返回false。

    问题在于,如果按下F10键,屏幕会失去焦点,因为F10是系统键,会切换Windows菜单。我如何才能让CefSharp知道不要将F10中继到操作系统进行处理,以便我的屏幕保持焦点?

    在标准WPF中,有一个e.Handled,我可以将其设置为true,但在本例中没有(根据文档,返回值会这样做)。

    1 回复  |  直到 7 年前
        1
  •  0
  •   ZekeMarsh    7 年前

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