我注意到 FlipView 控件一次会将其 3 个项目保留在内存中。它在内存中保存当前选择的项目,以及直接位于所选项目左侧和右侧的项目(如果方向为垂直,则在上方/下方)。
当跳转到不同的翻转视图项目时,这会产生一些不需要的副作用。它们在 Surface RT 设备上尤其明显(因为它太慢了)。
是否有某种方法可以将所有翻转视图项目保留在内存中,以便在您滑动时不会加载和卸载它们?
或者也许是一种在加载翻转视图项目时缓存它们的方法?
谢谢你的帮助。
我注意到 FlipView 控件一次会将其 3 个项目保留在内存中。它在内存中保存当前选择的项目,以及直接位于所选项目左侧和右侧的项目(如果方向为垂直,则在上方/下方)。
当跳转到不同的翻转视图项目时,这会产生一些不需要的副作用。它们在 Surface RT 设备上尤其明显(因为它太慢了)。
是否有某种方法可以将所有翻转视图项目保留在内存中,以便在您滑动时不会加载和卸载它们?
或者也许是一种在加载翻转视图项目时缓存它们的方法?
谢谢你的帮助。
为了防止虚拟化,您可以用 StackPanel 替换 ItemPanelTemplate 中的 VirtualizeStackPanel:
<ItemsPanelTemplate x:Key="ItemsPanelTemplate1">
<StackPanel AreScrollSnapPointsRegular="True" Orientation="Horizontal" />
</ItemsPanelTemplate>
但是你必须小心权衡,因为它会在第一次导航时加载所有项目并将它们保存在内存中,直到你导航离开。
也许更好的方法是更多地查看加载时间最长的内容并尝试对其进行优化(例如加载图像或在加载时进行一些数据处理)。