2016-02-12 106 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