1

私の WinRT XAML アプリでは、Main.xaml ページに EntranceThemeTransition があり、アプリケーションを最初にロードしたときに再生されません (App.Xaml は Main.xaml のフレーム ロードを行います)。ただし、アプリケーションがロードされ、メインから離れて移動すると、再生されます。私が構築した他の WinRT アプリでこれに気付きました。

それは既知のバグですか、それともより高速な起動を可能にする機能ですか? 私は時間をかけて素敵なイントロのトランジションを作成しましたが、ほとんどのユーザーがそれを見ることができないのは残念です. アプリケーションがロードされている間にトランジションがバックグラウンドでロードされ、ユーザーがページにアクセスするまでにトランジションが完了するようです。

現在、私は Thread.Wait やその他のいくつかのハックで遊んでいますが、これを「高速で滑らかな」体験にしておらず、別のページからそれらに戻るとトランジションが分厚いように見えます。これに問題がある人はいますか?最初の読み込み時に開始アニメーションを強制的に再生するためのベスト プラクティスは何ですか? 前もって感謝します!

4

2 に答える 2

0

これは主に、要素が XAML ツリーで既に作成されているためだと思いますが、これらの要素がバインドされているコンテンツは、Web サービスからデータをロードするときに遅れて到着する唯一のものです。技術的にはアニメーション化されていますが、コンテンツがないため表示されません。VM がデータを読み込んだことを示すのを待機する DataTemplate として XAML を保持する DeferredContentPresenter を使用して修正できます。次に、DataTemplate で LoadContent 関数を使用して、XAML ツリーを作成できます。これで要素が作成され、同時にデータも利用できるようになったので、入り口のアニメーションが表示されるはずです。

ここに示すコードを適応させることができます: XAML の遅延読み込みを行い、IsLoaded プロパティを追加して、VM がモデル レイヤーからのデータの読み込みを完了したときに ViewModel から公開する IsLoaded プロパティにバインドします。この IsLoaded プロパティが DeferredContentProvider で変更されると、LoadContent が呼び出されます。

于 2015-07-27T21:27:49.650 に答える
-1

リリース ビルドを実行し、デバッグせずにアプリを実行すると、問題がなくなるか、少なくとも目立たなくなります。

それ以外の場合は、プログレス バーを含む読み込み画面を表示し、アプリケーションの起動前に画像をプリロードします。

于 2012-07-17T16:44:07.840 に答える