Windows 10 UWP - 如何在显示页面之前预加载页面

本文关键字:加载 显示 UWP Windows | 更新日期: 2023-09-27 18:31:11

我正在开发一个涉及使用大量图像的Windows 10应用程序。就目前而言,从一个页面导航到另一个页面会导致几秒钟的"弹出",因为页面上的各种图像加载并且结果相当卡顿

那么 TL;DR - 是否可以在向用户显示页面内容之前预加载页面内容,以便从页面 x 到页面 y 的过渡顺利进行?

我尝试过谷歌搜索解决方案,但我不知道是我使用错误的白话还是无法完成。

Windows 10 UWP - 如何在显示页面之前预加载页面

是否可以在向用户显示页面内容之前预加载页面内容,以便从页面 x 到页面 y 的过渡顺利进行?

在 UWP 应用中,在加载页面之前,必须调用 Frame.Navigate()。此方法中应该有一些操作,例如:分配内存、加载资源、渲染。因此,对于您的方案,在我看来,不可能在显示页面资源之前预加载它们。

避免使用大尺寸的图像是一种可能的解决方案。或者,如果您只想加载大量小图像,

通过使用增量加载,可以将列表控件绑定到任意大的数据源,并且仍然可以实现高性能。

当您需要在一页中加载大量图像时,正确的方法是使用带有数据绑定的 ISupportIncrementalLoad。可以深入参考数据绑定。

下面是官方 XAML 数据绑定示例,方案 8 是关于增量加载的。尽管这是 Windows 8.1 应用,但此方法也可以在 UWP 应用中使用。

我在这里写了一个简单的增量加载演示,它只是使用一个GridView和内部Image在一个页面中加载和显示 1000 张图像。

你的朋友是Loaded事件,UIElement加载到视图中后会被触发。

您可以执行以下操作:默认情况下,图像列表为 Opacity = 0,并设置 加载事件:图像列表 Opacity = 1。这样,您可以确保列表在加载之前不可见:)