C#:为什么我的进度条没有运行几次

本文关键字:运行 几次 为什么 我的 | 更新日期: 2023-09-27 17:57:18

我想在我的 WPF 应用程序中实现 2 个进度条。一个(进度条文档)应显示每个选定文档的进度,另一个(进度条进程)应显示整个过程的进度,包括每个选定文档的处理。我的问题是,如果进度条的值为 100,则进度条的动画将停止,但进度条文档的动画不会重置并重新启动。我该怎么做?

double summand = (1 / anzahl);
Duration durationdocument = new Duration(TimeSpan.FromSeconds(1));
Duration durationprocess = new Duration(TimeSpan.FromSeconds(anzahl));
DoubleAnimation doubleanimationdocument = new DoubleAnimation(ProgressbarDocument.Value, durationprocess);
DoubleAnimation doubleanimationprocess = new DoubleAnimation(ProgressbarProcess.Value, durationprocess);
for (int j = 0; j <= anzahl; j++ )
{
   for (int i = 0; i < 100; i++)
   {
      ProgressbarDocument.Value++;
      ProgressbarProcess.Value= summand + ProgressbarProcess.Value;
      doubleanimationdocument = new DoubleAnimation(ProgressbarDocument.Value, durationdocument);
      doubleanimationprocess = new DoubleAnimation(ProgressbarProcess.Value, durationprocess);
      ProgressbarDocument.BeginAnimation(ProgressBar.ValueProperty, doubleanimationdocument);
      ProgressbarProcess.BeginAnimation(ProgressBar.ValueProperty, doubleanimationprocess);
   }
   if(ProgressbarDocument.Value==100)
   {
      ProgressbarDocument.Value = 0;
      ProgressbarDocument.BeginAnimation(ProgressBar.ValueProperty, doubleanimationdocument);
   }
}

C#:为什么我的进度条没有运行几次

你的内部 for 循环for (int i = 0; i < 100; i++)将在我 99 岁后退出。 i == 100 永远不会被调用,因此您的 if 语句if(ProgressbarDocument.Value==100)永远不会匹配。

我假设您希望您的 for 循环运行到 100:

for (int i = 0; i <= 100; i++)