繁体   English   中英

WPF C#中的进度栏

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM