我对WPF ProgressBar感到困惑。这是我写的代码来显示它:
<ProgressBar Height="31" Margin="15" Name="progressBar"
VerticalAlignment="Top" IsIndeterminate="True" />
据我所知,这足以让它发挥作用。但它在我的项目中不起作用。我的意思是当我显示窗口(Popup实际上是它的xbap项目)时,progressbar不显示任何动画,但它是可见的。
还没有后台线程,UI线程未被阻止。
有什么问题?
答案 0 :(得分:3)
还没有后台线程,UI线程未被阻止。
我认为你完全错了,那就是你的问题。您没有后台线程,因此您的UI线程被阻止。如果您更新进度条的方法正在UI线程上运行(如果您没有在后台线程上运行它,那么进度条的更新将不会出现,直到方法完成运行并且控制是返回Dispatcher。
您需要使用BackgroundWorker
在后台线程上运行长时间运行的方法,并通过提升和处理其ProgressChanged
事件来更新进度条。事件处理程序在UI线程上运行,并且可以更新UI对象。
答案 1 :(得分:0)
它可能使用Windows主题,其中不正确的进度条未正确显示。
答案 2 :(得分:0)
请尝试这些代码
ProgressBar test=new ProgressBar();
Duration dr = new Duration(TimeSpan.FromSeconds(timespan));
DoubleAnimation da = new DoubleAnimation(determination, dr);
test.IsIndeterminate = false;
test.Visibility = Visibility.Visible;
test.BeginAnimation(ProgressBar.ValueProperty, da);
如果你想让ProgressBar工作,你应该创建一个Animation实例,并将它设置为ProgressBar.May它有帮助!