确定屏幕上控件的可见性

时间:2011-03-15 22:25:26

标签: c# wpf

让我们说,我有ListBox,有数百ListBoxItems。在ListBox的右侧,有一个ScrollViewer,允许用户在ListBox的当前视图中查看上方或下方的项目。我的目标是确定哪些元素,即ListBoxItems当前可见。有没有一种方法可以确定ListBoxItem是否在屏幕上可见?

2 个答案:

答案 0 :(得分:1)

您可以使用ListBox.ScrollIntoView()来确保ListBoxItem可见。

你可以使用它而不是检查它是否可见?

答案 1 :(得分:0)

您可以使用ListView而不是ListBox,因为ListBoxItem有一个名为Bounds的属性,它允许您通过返回Rectangle对象来查看每个项目的客户端坐标。然后,您可以将这些坐标与ListView的可见客户区域进行比较,以确定项目是否可见。列表视图中的可见区域将是从x = 0到x = Width并且从y = 0到y = Height。您可以使用Rectangle.IntersectsWith(Rectangle)...

快速测试可见性