防止DataGrid滚动从捕捉到行

时间:2012-06-20 16:00:47

标签: wpf wpfdatagrid

我有一个DataGrid,其中每行包含ItemsControl。因此,网格的行可以非常高。如果一行高于网格的高度,我无法滚动查看行的其余部分,因为DataGrid会自动滚动到下一行。也就是说,如果我正在查看第1行的上半部分并单击垂直滚动条的向下箭头,它会跳到第2行的顶部。它不会让我看到第1行的下半部分。我如何制作DataGrid是否可以平滑地滚动行而不是逐行步进?

2 个答案:

答案 0 :(得分:6)

听起来您想禁用虚拟化。为此,只需为CanContentScrollFalse设置为ScrollViewer即可。但是,如果您的DataGrid中有大量数据,那么如果您启用虚拟化可能会变得非常慢,因为所有DataGridRows将立即生成,而不是实际上对用户可见。< / p>

<DataGrid ...
          ScrollViewer.CanContentScroll="False">

答案 1 :(得分:3)

我遇到了这个滚动会粘在行上的问题。然后我遇到了:https://stackoverflow.com/a/13384164/4791472

<Datagrid ..
            VirtualizingPanel.ScrollUnit="Pixel"

基本上它将滚动设置为捕捉到像素而不是项目。这将带来流畅的滚动体验。