【问题标题】:Can not use Alt + F4 to close program when WPF application have a Webview当 WPF 应用程序有 Webview 时,不能使用 Alt + F4 关闭程序
【发布时间】:2019-07-17 04:23:14
【问题描述】:

我的应用程序有一个 Webview。它是全屏应用程序。问题是当我按 Alt+F4 时,应用程序没有退出,什么也没有发生。

我认为 Webview 吞下了焦点,因为:当我按下 Window 键 > 显示开始菜单 > 再次按下 Window 键 > 隐藏开始菜单 > Alt + F4 > 应用程序按预期退出时。

我发现 WPF WebBrowser 具有 WebBrowserShortcutsEnabled 但我在 Windows 社区工具包 WebView 中找不到类似的东西。

请帮助我使 Alt + F4 起作用。谢谢!

【问题讨论】:

  • 给某人投票-1:如果您认为问题不好,请通过添加一些理由告诉我。
  • 我认为您必须在 WebView 代码中处理此问题以捕获键盘事件,然后传递给应用程序。我知道我必须使用 UWP WebView 执行此操作。它适用于您描述的另一种情况,即当您关闭开始菜单时,焦点很可能会返回到应用程序窗口而不是 WebView。

标签: webview windows-community-toolkit


【解决方案1】:

我遇到了同样的问题,并通过处理 WebView 的 AcceleratorKeyPressed 事件(在这种情况下检查 Alt+F4 并关闭窗口)实用地解决了它。

MainWindow.xaml:

<Controls:WebView ... AcceleratorKeyPressed="WebView_AcceleratorKeyPressed"/>

MainWindow.xaml.cs:

private void WebView_AcceleratorKeyPressed(object sender, Microsoft.Toolkit.Win32.UI.Controls.Interop.WinRT.WebViewControlAcceleratorKeyPressedEventArgs e)
{
    if (e.VirtualKey == Microsoft.Toolkit.Win32.UI.Controls.Interop.WinRT.VirtualKey.F4 && Keyboard.Modifiers.HasFlag(ModifierKeys.Alt))
        Close();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    相关资源
    最近更新 更多