【问题标题】:CefSharp ProgressBar for indicating download progressCefSharp ProgressBar 用于指示下载进度
【发布时间】:2016-12-12 17:57:36
【问题描述】:

我正在制作一个基于 CefSharp 的网络浏览器。当我尝试从网络下载文件时,它会提示我保存文件,当我按保存时,它会下载文件而不显示任何进度百分比。我想添加一个 ProgressBar 来显示下载进度。我该怎么做?

【问题讨论】:

标签: c# cefsharp


【解决方案1】:

您可以为此使用IDownloadHandler

假设您的 XAML 中有一个名为 Browser 的浏览器控件和一个名为 BarProgressBar,您可以在后面的代码中执行此操作:

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;
        }));
    }
}

【讨论】:

    猜你喜欢
    • 2015-06-02
    • 1970-01-01
    • 2019-01-12
    • 2014-03-05
    • 2016-05-24
    • 2016-02-03
    • 1970-01-01
    • 2018-04-27
    相关资源
    最近更新 更多