我正在将Progressbar作为Silverlight应用程序的一部分,当用户单击按钮时会触发该应用程序。现在,我只是在随机时间以随机增量更新它,以便我可以确保它按照我需要的方式工作。更新Progressbar值的代码相当简单,但Progressbar的实际显示永远不会更新。我用于此的代码在这里:
Random randomGen = new Random();
while (submitProgress.Value < submitProgress.Maximum)
{
System.Threading.Thread.Sleep(randomGen.Next(100, 500));
submitProgress.Value += randomGen.Next(3, 7);
}
我用来创建进度条的XAML在这里:
<ProgressBar Grid.Row="2" Height="30" Width="400" IsIndeterminate="False"
Minimum="0" Maximum="100" Value="0" Name="submitProgress"></ProgressBar>
要清楚,Progressbar在完成时会更新到已完成状态,但从开始到结束都没有中间更新。如果您需要我的更多信息,请告诉我。谢谢!
答案 0 :(得分:2)
您正在运行哪个线程?如果您在主线程上运行,则UI将不会更新,直到处理完成。我建议使用BackgroundWorker进行处理。在更新UI或更新绑定到UI的对象时,您需要使用Dispatcher。