1

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

4

1 回答 1

2

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

如果您不想花几天或几周的时间来解决这个问题,Oleh 的建议是您最好的选择。GridView如果您对其ItemsPanel属性使用虚拟化面板,例如WrapGrid(Windows 8.0 默认)或ItemsWrapGrid(Windows 8.1 默认) ,您将被虚拟化。请注意,VariableSizedWrapGrid不是虚拟化的。

于 2013-08-13T16:30:18.137 回答