【问题标题】:How to check if a scroll is currently visible in WPF DataGrid?如何检查 WPF DataGrid 中当前是否可见滚动?
【发布时间】:2011-04-28 13:44:11
【问题描述】:

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

【问题讨论】:

    标签: c# wpf datagrid scroll visibility


    【解决方案1】:
    Private Function FindVisualChild(Of childItem As DependencyObject)(ByVal obj As DependencyObject) As childItem
            For i As Integer = 0 To VisualTreeHelper.GetChildrenCount(obj) - 1
                Dim child As DependencyObject = VisualTreeHelper.GetChild(obj, i)
                If child IsNot Nothing AndAlso TypeOf child Is childItem Then
                    Return CType(child, childItem)
                Else
                    Dim childOfChild As childItem = FindVisualChild(Of childItem)(child)
                    If childOfChild IsNot Nothing Then
                        Return childOfChild
                    End If
                End If
            Next i
            Return Nothing
        End Function
    

    【讨论】:

      【解决方案2】:

      这是 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;
      }
      

      【讨论】:

        【解决方案3】:
        ScrollViewer scrollview = FindVisualChild<ScrollViewer>(dataGrid);
        Visibility verticalVisibility = scrollview.ComputedVerticalScrollBarVisibility;
        Visibility horizontalVisibility = scrollview.ComputedHorizontalScrollBarVisibility;
        

        【讨论】:

        猜你喜欢
        • 2011-02-27
        • 2011-02-18
        • 1970-01-01
        • 2010-10-14
        • 2010-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-15
        相关资源
        最近更新 更多