0

WP7 アプリに複数のページがあり、アプリの使用中に行われた選択によってアプリに出入りします。それはデータの重いアプリですが、私は他に何もしていませんが、独自の ViewModel を使用してコントロールを埋めています。

ForwardIn トランジション アニメーションが表示されません。その結果、醜い黒い画面が約 1.5 秒間一時停止し、ページが突然ポップアップするように見えます。一部のページに白い背景があるため、電話が表示された後、明るさを自動的に調整しようとしますが、これも見栄えが悪くなります。私が注意する必要がある特定のものはありますか?

ナビゲーションがスムーズに行われるように、ナビゲーションの前にページをプリロードする方法はありますか?とにかく、前のページのパフォーマンス プログレス バーを使用してデータをロードしています。最も時間がかかったものを確認できるように、このページの読み込みをプロファイリングする方法はありますか?

4

1 に答える 1

0

リストにバインドするときに、この効果をよく見てきました。私がしているのは、ナビゲーション/アニメーションが完了するまでバインディングを遅らせることです。私は通常、アニメーションの完了後に進行状況バーを表示し、バックグラウンド スレッドで約 50 ミリ秒待機して、進行状況バーが 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();
于 2011-11-22T14:50:01.003 に答える