是否可以检查屏幕上是否已呈现项目(因此对用户可见)?我正在尝试使用自动“图像交换动画”创建图像控件,但是当我在页面上有数百个图像时(例如在GridView中),性能非常糟糕。我想知道哪些控件对用户可见,所以我只为它们运行动画。
答案 0 :(得分:2)
您可以通过UIElement.TransformToVisual()
检查项目的位置,然后使用它来获取相对于ScrollViewer
中GridView
剪裁框的项目坐标,但如果你在每个ScrollViewer
视图更改事件上检查它并且可以使用一些优化,它的性能可能不是很好,如果你的GridView支持虚拟化也很困难,如果你想要它需要它能够滚动数百张图片。
GridView
媒体资源使用虚拟化小组,则ItemsPanel
将被虚拟化,例如a WrapGrid
(Windows 8.0默认值)或ItemsWrapGrid
(Windows 8.1默认值)。请注意,VariableSizedWrapGrid
非已虚拟化。