页面过渡在导航时不适用于Forw​​ardIn

时间:2011-11-22 11:35:33

标签: windows-phone-7 transitions navigationservice

我的WP7应用程序中有多个页面,我通过在使用应用程序期间所做的选择来移入和移出应用程序。它是一个数据量很大的应用程序,但我没有做任何其他事情,只是使用自己的ViewModel来填充控件。

ForwardIn过渡动画无法显示 - 这会导致丑陋的黑屏暂停约1.5秒,并且页面似乎突然弹出。我在某些页面上有白色背景,因此在显示手机后会尝试自动调整亮度,这看起来也很糟糕。我需要注意哪些具体的具体信息?

有没有办法可以在导航之前预先加载页面,以便顺利进行,我正在使用前几页中的性能进度条来加载数据。是否有任何方法来分析此页面加载,以便我可以检查花费最多的时间。

1 个答案:

答案 0 :(得分:0)

绑定到列表时,我已经看到了很多这种效果。我做的是延迟绑定直到导航/动画完成后。我通常在动画完成后显示一个进度条,在后台线程上等待大约50ms以允许进度条更新它的UI,然后绑定到列表并隐藏进度条。

以下是动画完成时运行的代码:

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();