当我们需要操作ListBox中的ScrollerBar的时候我们可以通过VisualTreeHelper来找到。代码如下:
public static childItem FindVisualChild<childItem>(DependencyObject obj)
where childItem : DependencyObject
{
// Search immediate children first (breadth-first)
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is childItem)
return (childItem)child;
else
{
childItem childOfChild = FindVisualChild<childItem>(child);
if (childOfChild != null)
return childOfChild;
}
}
return null;
}
这个函数返回可是树中第一个参数对象,比如找csrollerview的时候可以这样调用:
CallFindVisualChild<ScrollViewer>(ListBox)。