2016-12-12 2 views
0

CefSharp를 기반으로 웹 브라우저를 만들고 있습니다. 웹에서 파일을 다운로드하려고하면 파일을 저장하라는 메시지가 표시되고 저장을 누르면 진행률을 나타내지 않고 파일이 다운로드됩니다. 다운로드 진행 상황을 보여주기 위해 ProgressBar를 추가하고 싶습니다. 어떻게해야합니까?다운로드 진행 상태를 나타내는 CefSharp ProgressBar

+0

: 여기

Browser.DownloadHandler = new MyDownloadHandler(Bar); 

MyDownloadHandler에 대한 코드입니다 https://github.com/cefsharp/CefSharp/commit/b47731de5ec09130a83c11e0d0776e9c245e95b7 – amaitland

답변

1

IDownloadHandler을 사용할 수 있습니다.

은 뒤에 코드에서이 작업을 수행 할 수 있습니다, 당신은 Browser라는 브라우저 컨트롤과 XAML에서 Bar라는 ProgressBar가 있다고 가정 :

public class MyDownloadHandler : IDownloadHandler { 
    private ProgressBar _bar; 

    public MyDownloadHandler(ProgressBar bar) { 
     _bar = bar; 
    } 

    public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback) { 

    } 

    public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback) { 
     _bar.Dispatcher.Invoke(new Action(() => { 
      Debug.Print("{0}/{1} bytes", downloadItem.ReceivedBytes, downloadItem.TotalBytes); 

      _bar.Maximum = downloadItem.TotalBytes; 
      _bar.Value = downloadItem.ReceivedBytes; 
     })); 
    } 
} 
+0

대단히 감사합니다! –