CefSharp ProgressBar用于指示下载进度 [英] CefSharp ProgressBar for indicating download progress
本文介绍了CefSharp ProgressBar用于指示下载进度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在制作基于CefSharp的Web浏览器.当我尝试从网络上下载文件时,它会提示我保存文件,而当我按保存"时,它会下载文件而不显示任何进度百分比.我想添加一个ProgressBar以显示下载进度.我该怎么办?
I am making a web browser based on CefSharp. When I try to download a file from the web, it prompts me to save the file, and when I press Save, it downloads the file without indicating any progress percentage. I want to add a ProgressBar to show download progress. How can I do this?
推荐答案
您可以为此使用 IDownloadHandler
.
假设您的XAML中有一个名为 Browser
的浏览器控件和一个名为 Bar
的 ProgressBar
,您可以在后面的代码中执行此操作:
Suppose you have a browser control named Browser
and a ProgressBar
named Bar
in your XAML, you can do this in your code behind:
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;
}));
}
}
这篇关于CefSharp ProgressBar用于指示下载进度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文