我正在使用涉及使用大量图片的Windows 10应用。就目前而言,从一个页面导航到另一个页面会导致几秒钟内弹出"弹出"因为页面上的各种图像加载而且结果相当笨拙
所以TL; DR - 是否可以在将页面内容显示给用户之前预加载页面的内容,以便从第x页到第y页的过渡是顺畅的?
我已经尝试使用谷歌搜索解决方案,但无论我使用的是错误的白话还是无法完成,我都不知道。
答案 0 :(得分:1)
是否可以在将页面内容显示给用户之前预先加载页面内容,以便从第x页到第y页的过渡是否顺畅?
在UWP应用中,在加载页面之前,必须调用Frame.Navigate()。此方法中应该有一些操作,例如:分配内存,加载资源,渲染。因此,对于您的场景,在我看来,在显示页面之前无法预加载页面的资源。
避免使用大尺寸的图像是一种可能的解决方案。或者,如果您只想加载大量小图片,
您可以将列表控件绑定到任意大型数据源,并通过使用增量加载来实现高性能。
当您需要在一个页面中加载大量图像时,正确的方法是使用带有数据绑定的ISupportIncrementalLoading。您可以参考Data binding in depth。
这是官方XAML data binding sample,方案8是关于增量加载。虽然这是一个Windows 8.1应用程序,但此方法也可以在UWP应用程序中使用。
我在这里写了一个简单的IncrementalLoading演示,它只是在其中使用GridView
和Image
来加载并在一个页面中显示1000个图像。
答案 1 :(得分:0)
您的朋友是Loaded
事件,将在视图中加载UIElement
后触发..
您可以执行以下操作:默认情况下,图像列表为Opacity
= 0,并设置已加载的事件:图像列表Opacity
= 1 ..
通过这种方式,您可以确保列表在加载之前是不可见的:)