如何在WPF Datagrid上启用滚动条/滚动功能

9
我有一个DataGrid控件,它位于Grid布局容器内部,但我似乎无法让DataGrid本身的自动滚动功能正常工作。我可以将DataGrid包装在ScrollViewer中以添加滚动条,但自动滚动不起作用。
现在,当向DataGrid添加新条目时,DataGrid会垂直扩展。当添加的项超过原始的垂直大小时,我希望启用垂直滚动条,允许滚动到DataGrid中的项目,而不是整个DataGrid扩展。肯定有一种简单的方法可以实现这一点。

可能是WPF Datagrid - Not showing any Scrollbar的重复问题。 - NoWar
1个回答

18

好的,我弄清楚了这个问题......事实证明,我根本不需要将数据网格包裹在 ScrollViewer 中。我只需要为数据网格定义高度(使用“Height”属性),当添加的项目超出高度时,数据网格滚动条就会出现。显然,如果未定义高度,则它是动态的,并且随着新项目的添加而垂直扩展。

还有一件事要补充的是,在我的数据网格中,我还为每行定义了一些细节,因此当多个行细节被展开时,会启用滚动,但滚动条的行为有些古怪(就像它不能平滑滚动)。解决方法是添加以下数据网格属性:ScrollViewer.CanContentScroll="False"(我猜测数据网格控件是/继承自 ScrollViewer),然后滚动就像正常预期的滚动行为一样平滑。


13
建议避免直接设置Datagrid的高度。相反,将Datagrid放入DockPanel或Grid中,垂直滚动条会自动出现,Datagrid将使用所有可用空间。请注意不要改变原文意思。 - knockando

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接