我能以某种方式找到树视图项目是否在屏幕上可见吗?
我有一些数据要处理,这些数据很重,如果我对所有项目都这样做,我会遇到我想避免的延迟。
我需要有效的方法来测试一个项目是否在树的可见部分。
我能以某种方式找到树视图项目是否在屏幕上可见吗?
我有一些数据要处理,这些数据很重,如果我对所有项目都这样做,我会遇到我想避免的延迟。
我需要有效的方法来测试一个项目是否在树的可见部分。
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>();