我在UWP应用程序中创建一个图像选择器,其中我想显示来自一个文件夹(图片库)的所有图像。它类似于Windows平台中的默认照片应用程序。在网格视图中使用分页在UWP中加载图像
到目前为止做了什么?
我已经使用了一个Grid view &将它与代码隐藏文件中的列表绑定。我查询了图片文件夹并将图片作为流读取并逐个添加到列表中&最后将列表设置为网格视图的源代码。
参考:Link
什么问题?
由于我一个接一个的阅读图像,我认为当文件夹中的图像增加到10k时会很慢。
查询
我们可以这样做分页以网格视图?由于窗口大小在UWP中可调整大小,一次最多显示30-40张图像,当用户向下滚动然后再加载40张图像时,我们是否只能加载30个&?其次,我们可以不知何故知道默认的照片应用程序如何做这件事情?
P.S我搜索了很多,但我没有得到任何方式可以更好地优化它。谷歌,SO等,但没有太多。
任何帮助将不胜感激。
尝试扩展您的搜索,以包括wpf而不是uwp。这里有相当多的讨论可以进行调整。 https://stackoverflow.com/questions/1603605/wpf-paged-collectionviewsource和https://stackoverflow.com/questions/784726/how-can-i-paginate-a-wpf-datagrid – dkackman
请参阅[ListView和GridView UI优化](https://docs.microsoft.com/en-us/windows/uwp/debug-test-perf/optimize-gridview-and-listview)。对于分页请参考[ListView(UWP)中的分页]](https://stackoverflow.com/a/44646697/7331395) –
@dkackman在这些链接中,如果我一次读取所有图像(比如列表中)那些许多图像将一次在应用程序的内存中?如果是的话,那么我不想要这个。框架/库提供了什么,其中一次只有30-40个应用程序在应用程序内存中?我想这就是照片应用程序可能工作的方式。我不知道如何再次查询图像,如果用户再次上滚,然后再次下降。保持检查最后的图像等并不是一件容易的事情。微软必须在列表或网格视图或其他方面提供一些机制。我希望我能够澄清 – hellodear