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

时间:2016-01-21 00:16:23

标签: c# windows-store-apps uwp

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

所以TL; DR - 是否可以在将页面内容显示给用户之前预加载页面的内容,以便从第x页到第y页的过渡是顺畅的?

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

2 个答案:

答案 0 :(得分:1)

  

是否可以在将页面内容显示给用户之前预先加载页面内容,以便从第x页到第y页的过渡是否顺畅?

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

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

  

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

当您需要在一个页面中加载大量图像时,正确的方法是使用带有数据绑定的ISupportIncrementalLoading。您可以参考Data binding in depth

这是官方XAML data binding sample,方案8是关于增量加载。虽然这是一个Windows 8.1应用程序,但此方法也可以在UWP应用程序中使用。

我在这里写了一个简单的IncrementalLoading演示,它只是在其中使用GridViewImage来加载并在一个页面中显示1000个图像。

答案 1 :(得分:0)

您的朋友是Loaded事件,将在视图中加载UIElement后触发..

您可以执行以下操作:默认情况下,图像列表为Opacity = 0,并设置已加载的事件:图像列表Opacity = 1 .. 通过这种方式,您可以确保列表在加载之前是不可见的:)