在WPF桌面应用程序中,我有一个ListBox,必须显示Vertical Scrollbar和Horizontal Scrollbar。
根据屏幕分辨率,两个滚动条是否可见。
在我想知道的代码中是否可见或只有一个,以触发自动滚动。
我使用VisualTreeHelper类获取依赖项对象(ListBox本身)的子项列表,并提取所有ScrollViewers。
这里的方法:
private List<DependencyObject> FindChildren(DependencyObject o, Type childType)
{
List<DependencyObject> foundChildren = new List<DependencyObject>();
if (o != null)
{
int childrenCount = VisualTreeHelper.GetChildrenCount(o);
for (int i = 0; i < childrenCount; i++)
{
var child = VisualTreeHelper.GetChild(o, i);
if (child.GetType() != childType)
{
foundChildren.AddRange(FindChildren(child, childType));
}
else
{
foundChildren.Add(child);
}
}
}
return foundChildren;
}
当两个ScrollBars在UI上都可见时,它总是返回Horizontal One,而我无法获得Vertical One。
任何帮助和/或建议都是赞赏的。