[英]Progress bar in wpf c#
谁能帮助我如何在一种方法中集成进度条? 我的意思是,当我执行一个方法示例以提取zip文件时,我将显示一个进度条,以了解我的方法的进度,并且当该方法完成后,进度条将达到100%。
这是我提取文件的代码,我想在其中添加进度条
public void ExtractFiles()
{
foreach (var file in d.GetFiles("*."))
{
if (!Directory.Exists(targetPath))
Directory.CreateDirectory(targetPath);
if (!File.Exists(targetPath + file.Name))
{
Directory.Move(file.FullName, targetPath + file.Name);
}
else
{
File.Delete(targetPath + file.Name);
Directory.Move(file.FullName, targetPath + file.Name);
}
}
}
我想知道如何根据方法的进度显示进度条的百分比。
由于您具有相同的格式,因此应该很简单。
假设您已将ProgressBar命名为pb,则可以尝试如下操作。
public void ExtractFiles()
{
var total = d.GetFiles("*.").count();
var progressChange = 100/total;
foreach (var file in d.GetFiles("*."))
{
if (!Directory.Exists(targetPath))
Directory.CreateDirectory(targetPath);
if (!File.Exists(targetPath + file.Name))
{
Directory.Move(file.FullName, targetPath + file.Name);
}
else
{
File.Delete(targetPath + file.Name);
Directory.Move(file.FullName, targetPath + file.Name);
}
pb.Value += progressChange;
}
}
从@bit复制了代码,并做了一些改动。
尝试这个:
public void ExtractFiles()
{
var files = d.GetFiles("*.");
int total = files.Count();
var progressChange = 100/total;
foreach (var file in files)
{
if (!Directory.Exists(targetPath))
Directory.CreateDirectory(targetPath);
if (!File.Exists(targetPath + file.Name))
{
Directory.Move(file.FullName, targetPath + file.Name);
}
else
{
File.Delete(targetPath + file.Name);
Directory.Move(file.FullName, targetPath + file.Name);
}
//Here is the little bit change I did.
pb.Dispatcher.BeginInvoke(new Action(()=>{
pb.Value += progressChange;
}));
}
}
希望对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.