2016-02-12 1550 views
1

我正在实现一个包含cefsharp chromium-embedded浏览器的获胜表单。Cefsharp - 显示页面加载指示

我正面临以下问题 - 有时需要一段时间才能加载页面。 问题是,用户不知道发生什么事情,直到页面被实际加载。

我无法控制浏览器显示的页面。

我需要显示某种加载指示。我搜索了网页,我发现的唯一的事情就是当加载发生时显示动画加载图像,并在页面加载时使用隐藏它(使用加载状态更改事件)。 它似乎让事情变得更慢。

我可以使用Cefsharp基础设施吗?或解决它的任何其他想法? 谢谢!

+1

'LoadingStateChanged'是正确的事件。 'CefSharp'没有内置功能。如果速度很慢,请确保不在'LoadingStateChanged'处理程序中执行它的代码(使用'BeginInvoke'在'UI'线程上执行代码]。 – amaitland

回答

1
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 
      }); 
     } 
    } 
+0

谢谢!最终我已经实施它使用LoadingStateChanged事件(我与WinForm Cefsharp工作) – g1500

+0

:) :) :) :) :) :) :) :) :) :) – null1941