WinRT - Is item rendered?

本文关键字:rendered item Is WinRT | 更新日期: 2023-09-27 18:27:13

是否可以检查项目是否已经在屏幕上呈现(因此对用户可见)?我正试图用自动"图像交换动画"创建图像控件,但当我在页面上有数百个图像时(例如在GridView中),性能非常糟糕。我想知道哪些控件对用户可见,所以我只为它们运行动画。

WinRT - Is item rendered?

您可以通过获取UIElement.TransformToVisual()来检查项目的位置,然后使用它来获取项目相对于GridViewScrollViewer的剪裁框架的坐标,但如果您在每个ScrollViewer视图更改事件上检查它,并且可以使用一些优化,则它的性能可能不是很好,如果GridView支持虚拟化,如果你想滚动浏览数百张图像,它需要这样做。

如果你不想花几天或几周的时间来弄清楚,Oleh的建议是最好的。如果为ItemsPanel属性使用虚拟化面板,例如WrapGrid(Windows 8.0默认值)或ItemsWrapGrid(Windows 8.1默认值),则GridView将被虚拟化。请注意,VariableSizedWrapGridNOT虚拟化的。