Cefsharp - 显示页面加载指示
问题描述:
我正在实现一个包含cefsharp chromium-embedded浏览器的获胜表单。Cefsharp - 显示页面加载指示
我正面临以下问题 - 有时需要一段时间才能加载页面。 问题是,用户不知道发生什么事情,直到页面被实际加载。
我无法控制浏览器显示的页面。
我需要显示某种加载指示。我搜索了网页,我发现的唯一的事情就是当加载发生时显示动画加载图像,并在页面加载时使用隐藏它(使用加载状态更改事件)。 它似乎让事情变得更慢。
我可以使用Cefsharp基础设施吗?或解决它的任何其他想法? 谢谢!
答
ChromeView = new CefSharp.Wpf.ChromiumWebBrowser();
//Adding event listener
ChromeView.NavStateChanged += ChromeView_NavStateChanged;
//Event listener
private void ChromeView_NavStateChanged(object sender, CefSharp.NavStateChangedEventArgs e)
{
if(!e.IsLoading)
{
this.Dispatcher.Invoke(()=> { //Invoke UI Thread
controller.setLoaderinBack(); //UI Update
});
}
else
{
this.Dispatcher.Invoke(() => { //Invoke UI Thread
controller.setLoaderinFront(); //UI Update
});
}
}
'LoadingStateChanged'是正确的事件。 'CefSharp'没有内置功能。如果速度很慢,请确保不在'LoadingStateChanged'处理程序中执行它的代码(使用'BeginInvoke'在'UI'线程上执行代码]。 – amaitland