2017-03-02 2542 views
1

我已经成功在c#winforms中制作了个人迷你浏览器应用程序。 因为我想要一些更花哨的效果,所以我正在考虑制作一个WPF应用程序。所以我尝试了wiki教程,并用浏览器设置了一个简单的WPF表单,但注意到它的性能不佳。在非常简单的网页中选择文本,或者在滚动页面时,甚至都会引起注意。有什么可以做的吗?如果没有,那么我认为它将只是winforms,因为那个行为表现良好。WPF和CefSharp:性能不佳

编辑:我的规格:cefsharp的http://users.telenet.be/dropbox/specs.html

+1

网格尝试技巧[这里](https://github.com/cefsharp/CefSharp/issues/729) –

+0

哪些WiKi教程?你运行一个分析器来查找哪些代码部分很慢? – bradgonesurfing

+0

- https://github.com/cefsharp/CefSharp/wiki/Quick-Start - 我为什么要运行一个探查器,它是第三方代码,我的应用根本没有代码。 – Edwin

回答

1

WPF版本使用的渲染比的WinForms的不同模式。在WPF中,它基本上将每个帧复制到位图中,您可以想象它可能变得多慢。这在高分辨率屏幕上尤其明显。有一些选项可以提高性能(例如参见here),但根据我的经验(我尝试了所有选项),其中的非确实有助于匹配WinForms。为了在我的WPF项目中顺利地运行cefsharp,我实际上不得不使用WinForms版本的cefsharp并在​​WindowsFormsHost之内托管它 - 这有助于解决性能问题,但它有一些注意事项(例如,您不能部分隐藏WPF控件背后的WinForms托管控件 - 它会总是呈现在一切之上)。现在我认为这是唯一可行的选择,因为高分辨率屏幕现在已经很宽泛。

2

这将禁用WebGL,查看源代码以确定哪些标记符合您的要求。 “grMain” 是WPF

CefSettings s = new CefSettings(); 
s.SetOffScreenRenderingBestPerformanceArgs(); 
Cef.Initialize(s); 
ChromiumWebBrowser wbMain = new ChromiumWebBrowser(); 
grMain.Children.Add(wbMain); 
+0

我也试过这个,它没有帮助高分辨率屏幕(2K +)的性能。 – Evk