如何检查WPF DataGrid中当前是否可以看到滚动?

bra*_*her 11 c# wpf datagrid scroll visibility

如何检查WPF DataGrid中当前是否显示滚动(垂直或水平)?Horizo​​ntalScrollBarVisibility和VerticalScrollBarVisibility用于设置行为,并将它们设置为Auto.

And*_*lon 23

ScrollViewer scrollview = FindVisualChild<ScrollViewer>(dataGrid);
Visibility verticalVisibility = scrollview.ComputedVerticalScrollBarVisibility;
Visibility horizontalVisibility = scrollview.ComputedHorizontalScrollBarVisibility;
Run Code Online (Sandbox Code Playgroud)


Mar*_*ark 10

这是FindVisualChild的一个实现:

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;
}
Run Code Online (Sandbox Code Playgroud)