例如我要获取我的ListBox的 滚动条。
1.利用视觉树查找方法
//获取视觉树上的控件
private childItem FindVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject
{
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;
}
ScrollViewer scrollviewer = FindVisualChild<ScrollViewer>(listView);
listView就是控件名称
2.利用控件自己的方法
var scroller = (ScrollViewer)ListBox.GetPrivateProperty("ScrollHost").GetValue(ListBox);