Chromium 嵌入式 WPF 浏览器控件在文档更改时每秒重绘一次。解决方法?

Chromium Embedded WPF Browser control redraws every second whenever document changes. Workaround?

这似乎是软件包 (v49.0.1) 中的错误。要重现 - 创建新的 WPF 项目,将其体系结构设置为 x86 或 x64,添加 CefSharp.Wpf NuGet 包。重启VS,编译。将 ChromiumBrowser 添加到 MainWinoow.xaml,地址 属性 设置为任何 URL,如“http://whosebug.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

查看我找到的解决方法的答案。

这里:

public partial class App : Application {

    protected override void OnStartup(StartupEventArgs e) {
        var cefSettings = new CefSettings();
        cefSettings.SetOffScreenRenderingBestPerformanceArgs();
        Cef.Initialize(cefSettings);
    }

}

作为解决方法,可以使用 SetOffScreenRenderingBestPerformanceArgs()CefSettings 传递给 Cef.Initialize() 的对象中设置一些特定选项。这应该在创建任何 CEF 控件之前调用,最好在 App.xaml.cs in OnStartup() override.