如何解决第一次加载 CEF Winform 浏览器时出现黑屏
我使用的是 CEF Sharp - V86
我遇到了这个奇怪的问题,我们的用户开始抱怨它。
当cefsharp winform 浏览器第一次加载时,它会显示黑色窗口几毫秒然后消失。 如果我们重新加载或刷新网页,则不会发生。
我们最近从 V79 升级到 V86,我们在早期版本中没有任何问题。
到目前为止我所尝试的是,尝试在命令行参数下进行设置,但没有奏效。
settings.CefCommandLineArgs.Add("disable-gpu"); settings.CefCommandLineArgs.Add("disable-gpu-compositing");
我也试过设置 Cef.EnableHighDPISupport()
但是没有用。
附加信息:
检查最新版本 - CefSharp V88
当我们使用winform主机在wpf应用程序中加载CefSharp winform浏览器时,第一次加载时出现黑屏几毫秒,然后消失。
这在早期版本中没有发生。(我检查了 V79 到 V83)。
重现步骤。
创建一个示例 wpf 应用程序,使用 windowsformhost 加载 cefsharp winform 浏览器。 在 winform 浏览器的构造函数中,使用任何 url。我用 www.google.com 测试过。 运行应用程序。 请注意,最初的黑屏会出现几毫秒,然后消失。
请注意,这仅在第一次加载 chrome winform 时发生。
他似乎与 CEFSharp v84 不同。
任何帮助将不胜感激。 :)
解决方法
我能够摆脱黑色闪光。一旦我从 VS 表单设计器中删除它,事情就变得更好了。将其定义为表单级对象:
private ChromiumWebBrowser cwbPage;
然后在表单构造器中,将其实例化并添加到表单中的面板中:
cwbPage= new ChromiumWebBrowser("");
cwbPage.Dock = DockStyle.Fill;
this.pnlPanel.Controls.Add(cwbPage);
cwbPage.BringToFront();
//...add any event handlers
最后,传递Html字符串或者导航到url:
cwbPage.LoadHtml("<html><body>This is a test.</body></html>");
//OR
cwbPage.LoadUrlAsync("https://www.google.com");
注意事项:
- 加载内容仍然需要3秒左右,但至少没有黑闪。
- 我进行了试验并尝试重新使用 VS 表单设计器,但黑色闪光又回来了。我在 VS Form 生成的代码中去掉了它几乎所有的属性,但它仍然闪烁黑色。所以它不喜欢使用表单设计器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。