Переходы страниц не работают для ForwardIn при навигации - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть несколько страниц в моем приложении WP7, и я вхожу в приложения и выхожу из них, выбирая их во время использования приложения.это приложение, требующее больших объемов данных, но я больше ничего не делаю, но заполняю элемент управления с помощью собственного ViewModel.

Анимация перехода ForwardIn не отображается, что приводит к ужасной паузе на черном экранеоколо 1,5 секунд, и страница внезапно всплывает.У меня на некоторых страницах белый фон, поэтому после появления телефон пытается автоматически настроить яркость, что тоже выглядит плохо.есть ли какие-то специфические особенности, на которые мне нужно обратить внимание?

Есть ли способ, которым я могу предварительно загрузить страницу перед навигацией, чтобы она прошла гладко, я использую индикатор выполнения на предыдущих страницах для загрузки данных в любом случае,Есть ли способы профилировать загрузку этой страницы, чтобы я мог проверить, что заняло больше всего времени.

1 Ответ

0 голосов
/ 22 ноября 2011

Я часто видел этот эффект при привязке к спискам. Что я делаю, так это откладываю привязку до завершения навигации / анимации. Я обычно показываю индикатор выполнения после завершения анимации, подожду около 50 мсек в фоновом потоке, чтобы индикатор выполнения мог обновить свой интерфейс, а затем привязался к списку и скрыл индикатор выполнения.

Вот код, который я запускаю после завершения анимации:

progressBar.IsIndeterminate = true;
progressBar.Visibility = Visibility.Visible;
SynchronizationContext context = SynchronizationContext.Current;
Thread t = new Thread(() =>
{
    /* Allow the UI to catch up */
    Thread.Sleep(50);
    context.Post((state) =>
    {
        list.ItemsSource = dataSource;

        /* Hide the progress bar */
        progressBar.IsIndeterminate = false;
        progressBar.Visibility = Visibility.Collapsed;
    }, null);
});
t.IsBackground = true;
t.Start();
...