在 WPF 中访问 DataGrid 的 ScrollView 属性

Posted

技术标签:

【中文标题】在 WPF 中访问 DataGrid 的 ScrollView 属性【英文标题】:Access ScrollView properties of a DataGrid in WPF 【发布时间】:2012-04-03 22:58:12 【问题描述】:

是否可以访问我在数据网格的属性列表中找不到的水平偏移量?

谢谢

【问题讨论】:

【参考方案1】:

只需在 XAML 中命名基本控件(例如 ListView),然后在后面的代码中按名称访问它。

【讨论】:

【参考方案2】:

在 XAML 中

 <DataGrid Name="dataGrid1" ..... />

如果要访问 Horizo​​ntalOffset,则需要访问 Datagrid 中包含的 ScrollViewer

访问 ScrollViewer 的一种可能方法是

for (int i = 0; i < VisualTreeHelper.GetChildrenCount(dataGrid1); i++)

       if (VisualTreeHelper.GetChild(dataGrid1, i) is ScrollViewer)
    
              ScrollViewer scroll =
        (ScrollViewer)(VisualTreeHelper.GetChild(dataGrid1, i));
                           Console.WriteLine(scroll.HorizontalOffset);
    

注意scroll.HorizontalOffset 是只读的

【讨论】:

这是您要找的吗? 我会试试的。我知道该属性是只读的,但是有一个名为 ScrollToHorizo​​ntalOffset 的函数可以让我修改它。 不完全是这样,但足够接近。 Datagrid 确实有一个可视子项,但它是一个边框,而边框又具有 ScrollViewer,因此使用了双循环并且它现在可以工作了。 @Klaus78 伙计,你能看看我的问题,它几乎和这个一样,我试过你的代码,但它对我不起作用:(***.com/questions/39790008/…

以上是关于在 WPF 中访问 DataGrid 的 ScrollView 属性的主要内容,如果未能解决你的问题,请参考以下文章

在wpf中怎么获取datagrid某行某列的值啊?急!跪求!

访问 WPF DataGrid 组标题的项目

wpf datagrid过滤器列标题值访问

如何在WPF中模拟右键单击datagrid

wpf 怎么访问datagrid选中的项,如何实现 图中的binding

在wpf中怎么获取datagrid某行某列的值