Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使progressbar在wpf中使用webclient下载字符串。。?_C#_Wpf_Progress Bar_Webclient - Fatal编程技术网

C# 如何使progressbar在wpf中使用webclient下载字符串。。?

C# 如何使progressbar在wpf中使用webclient下载字符串。。?,c#,wpf,progress-bar,webclient,C#,Wpf,Progress Bar,Webclient,我制作了一个小应用程序,帮助下载网页的html内容。我制作了progressbar,使用webclient downloadprogress changed事件处理程序无法获取任何值或任何更改。 这是我的密码 private void Window_Loaded(object sender, RoutedEventArgs e) { progressBar1.Maximum = 100; WebClient wb = new WebClient(); wb.Downloa

我制作了一个小应用程序,帮助下载网页的html内容。我制作了progressbar,使用webclient downloadprogress changed事件处理程序无法获取任何值或任何更改。 这是我的密码

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    progressBar1.Maximum = 100;
    WebClient wb = new WebClient();
    wb.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wb_DownloadProgressChanged);
    wb.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wb_DownloadStringCompleted);
    wb.DownloadStringAsync(new Uri("http://www.google.com"));
}

void wb_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    string htmldoc = e.Result;
}

void wb_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
    progressBar1.Value = e.ProgressPercentage;
}
当我运行此代码时,e.progresspercentage始终为0,当下载完成时,它变为100。所以我不能让progressbar可行。谁能告诉我这里怎么了。。?
提前感谢。

您不能,下载StringAync不会引发事件。您可以改为使用,然后使用类似System.Text.Encoding的东西将其转换为字符串。

根据文档,DownloadStringAsync不报告进度。请参阅的文档

你还想用吗

using System.ComponentModel;

client.DownloadStringCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);

对此不确定,但我怀疑DownloadXXX方法依赖于预先报告的总大小来报告进度。就像被动FTP下载不会预先报告总下载大小一样,可能google.com web服务器没有返回适当的标题,指示将沿管道发送的预期字节数。

但我仍然没有更改progressbar…与以前一样。