uwp滚动查看器视口-有没有办法知道当前控件是否在视口中并且对用户可见



在uwp窗口应用程序中。

<ScrollViewer x:Name="filesView_Thumbnail">
<Grid><Image /></Grid>.... long list of Grid or GridView with ItemTemplate
</ScrollViewer>

当我在scrollViewer中加载一长串图像时,我想先加载用户可见的图像,因为加载图像需要时间。

有没有一种方法可以触发事件或计算当前ViewPort中哪个Grid或Image控件对用户可见?

我试着用宽度和高度粗略计算,但当它变成长列表时就不可行了。当"网格"one_answers"图像"控件的大小发生变化时,此方法不起作用。

正如Raymond Chen所说,您可以使用ListView。当加载一长串图像时,同时为所有图像创建UI会浪费资源。因此,您需要根据需要创建图像的UI。ListView和GridView(以及其他标准ItemsControl派生控件(为您执行UI虚拟化。换句话说,对于绑定到多个项目集合的项目控件,当项目接近滚动到视图中(几页之外(时,框架可以为这些项目生成UI并缓存它们。

注意ListView有内置的滚动查看器,不需要为其添加滚动查看器,否则会影响UI虚拟化。

最新更新