这似乎是包中的错误(v49.0.1)。要重现 - 创建新的WPF项目,将其体系结构设置为x86或x64,添加CefSharp.Wpf NuGet包。重启VS,编译。将ChromiumBrowser添加到MainWinoow.xaml,并将Address属性设置为任何URL,例如“http://stackoverflow.com”。运行应用程序。
我看到的是浏览器每秒重绘一次,完全无法使用。 WinForms版本工作正常。由于我的整个大项目取决于CEF - 任何线索该做什么?什么可以导致控制重绘像疯了一样?
更新:
我找到了触发它的东西:任何DOM更改。静态页面正确显示。我还发现v47.0.4适用于WPF和动态内容。我宁愿避免使用它,因为版本49.0.0中引入了API的重大变化。
这似乎是一个错误,实际上它知道GitHub上发布的问题是问题#1666: https://github.com/cefsharp/CefSharp/issues/1666
它也出现在v49.0.0的发行说明中 https://github.com/cefsharp/CefSharp/releases/tag/v49.0.0
查看我找到的workaroud的答案。
答案 0 :(得分:6)
下面:
public partial class App : Application {
protected override void OnStartup(StartupEventArgs e) {
var cefSettings = new CefSettings();
cefSettings.SetOffScreenRenderingBestPerformanceArgs();
Cef.Initialize(cefSettings);
}
}
作为一种解决方法,可以在传递给SetOffScreenRenderingBestPerformanceArgs()
的{{1}}对象中使用CefSettings
设置一些特定选项。这应该在创建任何CEF控件之前调用,最好在Cef.Initialize()
覆盖中的App.xaml.cs中。