我可以以某种方式查找屏幕上是否显示树视图项目吗?
我有一些要处理的数据很重,如果我为所有项目执行此操作,我会延迟,我想避免。
我需要高效方法来测试项目是否在树的可见部分。
答案 0 :(得分: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>();