WinRT - 项目是否呈现?

时间:2013-08-10 13:08:55

标签: c# windows-runtime

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

1 个答案:

答案 0 :(得分:2)

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

如果你不想花费数天或数周来搞清楚,Oleh的建议是你最好的建议。如果您为其GridView媒体资源使用虚拟化小组,则ItemsPanel将被虚拟化,例如a WrapGrid(Windows 8.0默认值)或ItemsWrapGrid(Windows 8.1默认值)。请注意,VariableSizedWrapGrid 已虚拟化。