WPF ProgressBar不显示进度

时间:2011-01-18 10:40:29

标签: c# .net wpf progress-bar

我对WPF ProgressBar感到困惑。这是我写的代码来显示它:

<ProgressBar Height="31" Margin="15" Name="progressBar" 
VerticalAlignment="Top" IsIndeterminate="True" />

据我所知,这足以让它发挥作用。但它在我的项目中不起作用。我的意思是当我显示窗口(Popup实际上是它的xbap项目)时,progressbar不显示任何动画,但它是可见的。

还没有后台线程,UI线程未被阻止。

有什么问题?

3 个答案:

答案 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它有帮助!