让我们说,我有ListBox
,有数百ListBoxItems
。在ListBox的右侧,有一个ScrollViewer
,允许用户在ListBox的当前视图中查看上方或下方的项目。我的目标是确定哪些元素,即ListBoxItems当前可见。有没有一种方法可以确定ListBoxItem是否在屏幕上可见?
答案 0 :(得分:1)
您可以使用ListBox.ScrollIntoView()来确保ListBoxItem可见。
你可以使用它而不是检查它是否可见?
答案 1 :(得分:0)
您可以使用ListView而不是ListBox,因为ListBoxItem有一个名为Bounds的属性,它允许您通过返回Rectangle对象来查看每个项目的客户端坐标。然后,您可以将这些坐标与ListView的可见客户区域进行比较,以确定项目是否可见。列表视图中的可见区域将是从x = 0到x = Width并且从y = 0到y = Height。您可以使用Rectangle.IntersectsWith(Rectangle)...
快速测试可见性