2010-08-09 343 views
9

我有一个DataGrid控制在Grid布局容器内,我似乎无法得到自动滚动DataGrid本身工作。我可以围绕ScrollViewer包装DataGrid,从而添加滚动条,但自动滚动不起作用。如何启用滚动条/滚动WPF Datagrid

所以现在,当新条目被添加到DataGrid时,DataGrid只是垂直扩展。我希望启用垂直滚动条,允许在添加更多项目时滚动到DataGrid中的项目,而不是扩大整个DataGrid。当然,必须有一个简单的方法来实现这一点。

+0

可能重复[WPF Datagrid - 不显示任何滚动条](https://stackoverflow.com/questions/24015890/wpf-datagrid-not-showing-any-scrollbar) – 2017-11-03 03:10:09

回答

16

好吧,得到了这个想法......事实证明,我甚至不需要将数据网格包裹在ScrollViewer中。我所要做的就是定义数据网格的高度(使用“高度”属性),并且在添加超出高度的项目时出现datagrid滚动条。显然,当高度未定义时,它是动态的,并且在添加新项目时垂直扩展。

另一件要补充的是,在我的数据网格中,我也为每一行定义了行细节,所以当多行的细节被展开时,滚动将被启用,但滚动条的行为是一点点古怪(就像它不是平滑滚动),并修复它使其平滑滚动添加以下datagrid属性:ScrollViewer.CanContentScroll =“False”(我猜数据网格控件是从/从ScrollViewer继承)然后滚动平稳,并像正常的预期滚动行为。

+13

我建议远离明确设置Datagrid的高度。相反,将数据网格放入DockPanel或Grid中,垂直滚动将自动发生,您的数据网格将使用可用的所有空间。 – knockando 2011-09-28 22:21:32