2

FlipView コントロールは一度に 3 つのアイテムをメモリに保持することに気付きました。現在選択されているアイテムと、選択されたアイテムのすぐ左と右 (または方向が垂直の場合は上/下) のアイテムをメモリに保持します。

これには、別のフリップビュー アイテムにジャンプするときに、望ましくない副作用がいくつかあります。また、Surface RT デバイスでは特に顕著です (非常に遅いため)。

すべてのフリップビュー アイテムをメモリに保持して、スワイプしたときにロードおよびアンロードされないようにする方法はありますか?

または、フリップビュー アイテムが読み込まれるときにキャッシュする方法はありますか?

助けてくれてありがとう。

4

1 に答える 1

3

仮想化を防ぐには、ItemPanelTemplate の VirtualizeStackPanel を StackPanel に置き換えることができます。

<ItemsPanelTemplate x:Key="ItemsPanelTemplate1">
        <StackPanel AreScrollSnapPointsRegular="True" Orientation="Horizontal" />
</ItemsPanelTemplate>

ただし、最初のナビゲーションですべてのアイテムをロードし、移動するまでそれらをメモリに保持するため、トレードオフに注意する必要があります。
おそらく、より良いアプローチは、読み込みに最も時間がかかるものを調べて、それを最適化しようとすることです (画像を読み込むか、読み込み時にデータ処理を行う場合など)。

于 2013-09-15T01:43:03.073 に答える