4


1

IsIndeterminateプロパティをtrueに設定してWPFプログレスバーコントロールを使用しようとしています。 私が持っている問題は、それが更新されないということです。

私はこのようなことをしています:

pbProgressBar.Visibility = Visibility.Visible;
//do time consuming stuff
pbProgressBar.Visibility = Visibility.Hidden;

これをスレッドでラップしてから、Dispatcherオブジェクトを使用してディスパッチしました。 どうやってこの問題を解決すればいいですか:)。

1 Answer


5


バックグラウンドスレッドで時間を浪費することをしなければなりません、そしてバックグラウンドスレッドがそれをするまで、 Visibility`が Hidden`に戻されないようにしなければなりません。 基本的なプロセスは次のとおりです。

private void _button_Click(オブジェクトセンダ、RoutedEventArgs e){_progressBar.Visibility = Visibility.Visible;

new Thread((ThreadStart)デリゲート{//ここで時間のかかる作業をする

//その後、プログレスバーを更新するためにUIスレッドにディスパッチします。

})。開始(); }