Windows 10 的通用应用程序的内存使用情况

Memory usage of Universal app for Windows 10

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

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

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

对于这种情况,使用单独的视图是正确的解决方案吗?

更新

如果有人需要,这里有关于元素布局重新排序表单的好文章,非常简单wintellect (AdaptiveTrigger, changing element positions in grid) and galasoft(AdaptiveTrigger,RelativePanel)。

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

如果您使用相同的控件但定位略有不同,我会考虑移动它们(可能使用 RelativePanel),正如 Jon Stødle 在评论中所建议的那样。

如果有更大的变化,那么我会在同一个文件中或使用单独的 Xaml 研究单独的布局(就像您正在做的那样),但对于简单的位置更改,这可能有点过头了。