0

我持有的web瀏覽器控件的Windows窗體滾動後捕獲屏幕,該Web瀏覽器將改變它在固定位置的位置自動如何使用線程UI

所以首先我把導航定位X那麼我會從我的表格中抓取一張圖片,然後將位置更改爲Y,然後再拍攝一張。

我的問題是,我使用的導航定位像

webBrowser1.Navigate("javascript:window.scroll(0," + X + ");"); 

所以我應該等待告訴UI改變則位置執行捕捉代碼,完成後我的位置重新更改爲Y軸相同方式並等待告訴UI完成然後捕獲。

我嘗試使用後臺工作,但它不支持我,我也嘗試線程,但作爲我;米不太好處理線程我的用戶界面沒有在捕獲前導航。 我使用線程,如:

ThreadStart captureFunc = new ThreadStart(CaptureScreen); 
Thread captureThread = new Thread(captureFunc); 
captureThread.Start(); 
while (!doneVal) 
{ 

} 
captureThread.Abort(); 

CaptureScreen是我的拍攝功能和doneVal是默認爲false和捕獲後改爲true值。 任何幫助將不勝感激。

+0

使用同步原語,如'Mutex','Events'和'WaitHandles'。你永遠不應該無限循環來創建一個「同步」。 –

+0

我不太喜歡使用線程,但我現在正在閱讀它,謝謝:) – AshOoO

回答

0

WebBrowser -control offers Events,例如Navigated -Event。
您可以使用它來確定WebBrowser - 控制的導航結束:

webBrowser1.Navigated += NavigatedEventHandler; //use in constructor for example 

... 

private void NavigatedEventHandler(object sender, NavigatedEventArgs e){ 

    //perform actions here 

} 
+0

這個事件只發生在導航自己的URL時發生,我的導航類似於執行javascript函數來滾動,所以它不會發生時只是滾動,謝謝 – AshOoO