Как показать обновление анимации во время HTTP-запроса - PullRequest
0 голосов
/ 18 марта 2011

Я заметил, что многие приложения выполняют анимацию "Обновление ..." в верхней части экрана, когда они выполняют HTTP-запросы.Как сделать так, чтобы это происходило в моем приложении, пока я ожидаю возврата асинхронного запроса?

Я предполагаю, что метод, который инициирует запрос, каким-то образом запускает анимацию, а тот, который обрабатывает возможный ответ, останавливает,Или он автоматически определяет наличие сетевого трафика?

Ответы [ 3 ]

3 голосов
/ 18 марта 2011

Это скрытый ProgressBar, установленный в неопределенный режим , чтобы получить точки.

Показать его при запуске запроса, а затем скрыть при завершении запроса.(или если это ошибка)

См. комментарии ниже для соображений производительности и альтернатив.

например

webclient.DownloadStringAsync(new Uri("http://example.com"));
progress.IsIndeterminate = true;
progress.Visibility = Visibility.Visible;

и

void dl_DownloadStringCompleted2(object sender, DownloadStringCompletedEventArgs e)
{
    progress.Visibility = Visibility.Collapsed;
    progress.IsIndeterminate = false;
    ...
}

дополнено предложениями по производительности из комментариев.спасибо

1 голос
/ 19 марта 2011

Я бы также предложил использовать Progressbar из Silverligt Toolkit , из-за соображений производительности (он работает на другом потоке, чем UI, больше данных можно прочитать здесь )

1 голос
/ 18 марта 2011

Использование ProgressBar.IsIndeterminate съедает более 60% ресурсов процессора. Это может привести к потере некоторых приложений (если им требуется много циклов ЦП) или просто разрядить батарею.

Альтернативы описаны здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...