如何在WPF(XAML)中获取垂直滚动条和水平滚动条

时间:2015-04-10 15:46:48

标签: c# wpf

在WPF桌面应用程序中,我有一个ListBox,必须显示Vertical Scrollbar和Horizo​​ntal 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上都可见时,它总是返回Horizo​​ntal One,而我无法获得Vertical One。

Listbox with Two Scrollbars

任何帮助和/或建议都是赞赏的。

0 个答案:

没有答案