CefSharp ProgressBar用于指示下载进度 [英] CefSharp ProgressBar for indicating download progress

查看:156
本文介绍了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 Barin 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆