1

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

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

这意味着当 Edgebrowser 在后台、另一个选项卡上或表单被隐藏时,我不能发出“Edgebrowser.Navigate”命令或任何东西,否则它将再次“变灰”。

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

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

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

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

4

0 回答 0