我有一个DataGrid,其中每行包含ItemsControl。因此,网格的行可以非常高。如果一行高于网格的高度,我无法滚动查看行的其余部分,因为DataGrid会自动滚动到下一行。也就是说,如果我正在查看第1行的上半部分并单击垂直滚动条的向下箭头,它会跳到第2行的顶部。它不会让我看到第1行的下半部分。我如何制作DataGrid是否可以平滑地滚动行而不是逐行步进?
答案 0 :(得分:6)
听起来您想禁用虚拟化。为此,只需为CanContentScroll
将False
设置为ScrollViewer
即可。但是,如果您的DataGrid
中有大量数据,那么如果您启用虚拟化可能会变得非常慢,因为所有DataGridRows
将立即生成,而不是实际上对用户可见。< / p>
<DataGrid ...
ScrollViewer.CanContentScroll="False">
答案 1 :(得分:3)
我遇到了这个滚动会粘在行上的问题。然后我遇到了:https://stackoverflow.com/a/13384164/4791472
<Datagrid ..
VirtualizingPanel.ScrollUnit="Pixel"
基本上它将滚动设置为捕捉到像素而不是项目。这将带来流畅的滚动体验。