WinRT - Is item rendered?
本文关键字:rendered item Is WinRT | 更新日期: 2023-09-27 18:27:13
是否可以检查项目是否已经在屏幕上呈现(因此对用户可见)?我正试图用自动"图像交换动画"创建图像控件,但当我在页面上有数百个图像时(例如在GridView中),性能非常糟糕。我想知道哪些控件对用户可见,所以我只为它们运行动画。
您可以通过获取UIElement.TransformToVisual()
来检查项目的位置,然后使用它来获取项目相对于GridView
中ScrollViewer
的剪裁框架的坐标,但如果您在每个ScrollViewer
视图更改事件上检查它,并且可以使用一些优化,则它的性能可能不是很好,如果GridView支持虚拟化,如果你想滚动浏览数百张图像,它需要这样做。
如果你不想花几天或几周的时间来弄清楚,Oleh的建议是最好的。如果为ItemsPanel
属性使用虚拟化面板,例如WrapGrid
(Windows 8.0默认值)或ItemsWrapGrid
(Windows 8.1默认值),则GridView
将被虚拟化。请注意,VariableSizedWrapGrid
是NOT虚拟化的。