每当文档发生变化时,Chromium Embedded WPF Browser控件都会每秒重绘一次.解决方法?

Har*_*rry 0 c# wpf chromium-embedded cefsharp

它似乎是包中的错误(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的重大变化.

它似乎是一个bug,实际上它知道GitHub上发布的问题是#1666:https: //github.com/cefsharp/CefSharp/issues/1666

它也出现在v49.0.0的发行说明中 https://github.com/cefsharp/CefSharp/releases/tag/v49.0.0

看到我找到的workaroud的答案.

Har*_*rry 7

这里:

public partial class App : Application {

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

}
Run Code Online (Sandbox Code Playgroud)

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