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

时间:2016-06-07 11:59:15

标签: 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的重大变化。

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

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

查看我找到的workaroud的答案。

1 个答案:

答案 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中。