2013-03-15 79 views
0

我能否以某种方式查找屏幕上是否显示树形视图项目?如何知道何时在屏幕上显示树形视图项目?

我有一些数据来处理哪些是沉重的,如果我为所有项目做了我得到的延迟,我想避免。

我需要高效方法来测试项目是否在树的可见部分。

+0

通过可见,你的意思是它的直接父母是扩大?或者它实际上在屏幕上呈现? – 2013-03-15 19:22:18

+0

让我们变得简单..可见我的意思是 - 你实际上可以在屏幕上看到这个项目(它被展开并且不在可见区域之外滚动)..人眼可见而不是属性可见性。 – 2013-03-15 21:36:22

回答

1
GeneralTransform gt = treeView.TransformToVisual(null); 
var treeRect = gt.TransformBounds(new Rect(0, 0, treeView.ActualWidth, treeView.ActualHeight)); 
var visibleElements = VisualTreeHelper.FindElementsInHostCoordinates(treeRect, treeView); 
var treeViewItemsVisibleOnScreen = visibleElements.OfType<TreeViewItem>(); 
相关问题