2015-03-10 3 views
-2

Я не знаю, не хватает ли я одного очевидного метода/свойства, но вот он: У меня есть ProgressBar, который по умолчанию имеет свойство IsIndeterminate как true. Но я хочу, чтобы это была анимация только в определенный период. Как я могу это достичь? я пытался что-то вроде:Как остановить неопределенную анимацию ProgressBar?

SomeBackgroundWorker.DoWork += SomeBackgroundWorker_DoWork; 
pgbStatus.IsIndeterminate = true; 
btnUpdate.IsEnabled = false; 
SomeBackgroundWorker.RunWorkerAsync(); 
btnUpdate.IsEnabled = true; 
pgbStatus.IsIndeterminate = false; 

Но тогда он не будет двигаться. Извините, если это дубликат (у меня такое чувство), но я не мог найти ответ нигде.

+1

Как только вызывается 'SomeBackgroundWorker.RunWorkerAsync();', вы сразу вызываете 'pgbStatus.IsIndeterminate = false'', поэтому он остановится ... Вам нужно остановиться только после завершения задачи async. – Belogix

+0

Боже, теперь я чувствую себя глупо. Спасибо, не могли бы вы также опубликовать это как ответ? – HDD

ответ

3

Место

btnUpdate.IsEnabled = true; 
pgbStatus.IsIndeterminate = false; 

В конце SomeBackgroundWorkerDoWork() метод. Возможно, вам понадобится также Invoke().

+1

Получил это, но я поместил его на RunWorkedCompleted, чтобы избежать отправки. Благодаря! – HDD

Смежные вопросы