防止DataGrid滚动从捕捉到行

xr2*_*0xr 5 wpf wpfdatagrid

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

Fre*_*lad 6

听起来你想要禁用虚拟化.要做到这一点,只需设置CanContentScrollFalseScrollViewer.但是,如果您拥有大量数据,DataGrid那么如果您关闭虚拟化,则会变得非常慢,因为所有数据都DataGridRows将立即生成,而不是在用户实际可见时生成.

<DataGrid ...
          ScrollViewer.CanContentScroll="False">
Run Code Online (Sandbox Code Playgroud)


小智 5

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

<Datagrid ..
            VirtualizingPanel.ScrollUnit="Pixel"
Run Code Online (Sandbox Code Playgroud)

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