C# 用于指示下载进度的进度条
我正在做一个基于CefSharp的网络浏览器。当我尝试从web下载文件时,它会提示我保存该文件,当我按save时,它会下载该文件而不显示任何进度百分比。我想添加一个进度条来显示下载进度。我怎样才能做到这一点呢?您可以使用C# 用于指示下载进度的进度条,c#,cefsharp,C#,Cefsharp,我正在做一个基于CefSharp的网络浏览器。当我尝试从web下载文件时,它会提示我保存该文件,当我按save时,它会下载该文件而不显示任何进度百分比。我想添加一个进度条来显示下载进度。我怎样才能做到这一点呢?您可以使用IDownloadHandler来实现这一点 假设您在XAML中有一个名为browser的浏览器控件和一个名为Bar的ProgressBar,您可以在代码隐藏中执行此操作: Browser.DownloadHandler = new MyDownloadHandler(Bar);
IDownloadHandler
来实现这一点
假设您在XAML中有一个名为browser
的浏览器控件和一个名为Bar
的ProgressBar,您可以在代码隐藏中执行此操作:
Browser.DownloadHandler = new MyDownloadHandler(Bar);
以下是MyDownloadHandler的代码:
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;
}));
}
}