5

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

4

2 回答 2

7

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

<DataGrid ...
          ScrollViewer.CanContentScroll="False">
于 2012-06-20T16:16:45.947 回答
5

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

<Datagrid ..
            VirtualizingPanel.ScrollUnit="Pixel"

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

于 2016-08-16T10:17:45.043 回答