适用于Windows 10的Universal app的内存使用情况

时间:2015-08-11 08:19:47

标签: xaml windows-10 win-universal-app windows-10-mobile

当我们为Windows 10构建通用应用时,为了支持多种分辨率,我们可以使用Adaptive triggers

在这种情况下,对于每个视觉状态,使用单独的布局。如果我们要采用3种尺寸,则必须创建每种布局,因此对于大多数控件而言,将存在多个重复,这些重复被隐藏并且在适当的视觉状态下变得可见。

所有这些控件都将被加载到内存和浪费RAM中,这对于低内存手机(如lumia 620)来说可能是危险的。

在这种情况下使用单独的视图是否正确?

更新

如果有人需要,这里有关于元素布局重新排序形式wintellect(AdaptiveTrigger,更改网格中元素位置)和galasoft(AdaptiveTrigger,RelativePanel)的好文章。

1 个答案:

答案 0 :(得分:1)

Windows 10 Xaml引入了一个属性x:DeferLoadingStrategy来标记仅在需要时加载的控件。这将允许您包含Xaml中的所有控件,而不会将它们加载到内存中,除非实际使用它们。在移动设备中,设备可能只有一个实际使用的尺寸(或两个用于纵向/横向),其他尺寸的布局永远不会加载。

对于你使用相同控件但只是略有不同定位的情况,我会考虑移动它们(可能使用RelativePanel),正如JonStødle在评论中所暗示的那样。

如果有更大的变化,那么我会在同一个文件中或单独的Xaml中查看单独的布局(就像你正在做的那样),但是对于简单的位置变化,这可能是过度的。