WebView2 (TEdgeBrowser) 在后台不工作如果在屏幕上不可见 - 只显示为灰色矩形

问题描述

我已经使用标准的 Delphi 10.4 Edgebrowser VCL 演示确认了这个问题,唯一的区别是我将带有 edgebrowser 组件的面板放在 TPageControl Tabsheet 上。

现在,如果我的应用开始时 Edgebrowser 在屏幕上不直接可见(因为另一个标签页处于活动状态),Edgebrowser 将永远不会在以后的任何日期完全在屏幕上绘制。它永远只会将自己显示一个灰色矩形并且无法从中恢复,除非我在 Edgebrowser 组件在屏幕上可见时调用 Edgebrowser.CloseWebView; Edgebrowser.CreateWebView;(它必须可见,或者再次没有任何反应)。

这意味着当 Edgebrowser 处于后台、另一个标签页或表单隐藏时,我无法发出“Edgebrowser.Navigate”命令或任何内容,否则它会再次“变灰”。

我想知道:这是一个错误还是我在这里遗漏了一些重要的东西?我尝试调用 Edgebrowser.Refresh 和 Edgebrowser.Repaint 但都没有帮助。一旦它变灰,只有关闭并重新创建 WebView 才能帮助恢复它。

我似乎很清楚这是某种画布问题,但我不知道从哪里开始。 我希望你能帮助或至少确认这种奇怪的行为。

系统规格: VMware Workstation 16 中 Windows 10 Pro 20H2 中的 Delphi 10.4 Update 1 来自 nuget 的 microsoft.web.webview2.0.9.579 和来自 here 的最新 Edge Runtime(使用引导安装程序安装)

要在您的系统上快速重新创建相同的场景: 打开“C:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\Object Pascal\VCL\Webbrowser\Edge\Edgebrowser.dproj”;将 pnlWebViewHost 剪切到剪贴板(这是包含 Edgebrowser 组件的面板);插入TPageControl;添加 2 个 tabsheets 并将 pnlWebViewHost 粘贴到其中之一上。切换到另一个标签页,然后运行应用程序。在运行时,用浏览器点击标签页,它现在应该只显示一个灰色矩形。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)