.net DataGrid scrollbar thumb在滚动期间更改大小

.net DataGrid scrollbar thumb在滚动期间更改大小,.net,wpf,datagrid,scrollbar,virtualization,.net,Wpf,Datagrid,Scrollbar,Virtualization,我有一个网格,它有不同高度的行。我注意到,当我向下滚动网格时,滚动条拇指会改变其高度 经过一些调查,我发现这是由UI虚拟化造成的:网格没有创建所有的项,因此它不知道网格的总高度,因此它通过计算它创建的行的平均行高来确定总高度,并将其乘以行数。这会导致thumb在滚动期间更改其大小,因为虚拟化会创建新项目并销毁不再显示的项目,这使网格认为总网格大小已更改 我的问题:有没有一种方法可以让我自己使用自己的启发式设置卷轴拇指大小?最好采用非侵入式方式,这样我就不必重新设置控件模板。禁用虚拟化不是一个选项

我有一个网格,它有不同高度的行。我注意到,当我向下滚动网格时,滚动条拇指会改变其高度

经过一些调查,我发现这是由UI虚拟化造成的:网格没有创建所有的项,因此它不知道网格的总高度,因此它通过计算它创建的行的平均行高来确定总高度,并将其乘以行数。这会导致thumb在滚动期间更改其大小,因为虚拟化会创建新项目并销毁不再显示的项目,这使网格认为总网格大小已更改

我的问题:有没有一种方法可以让我自己使用自己的启发式设置卷轴拇指大小?最好采用非侵入式方式,这样我就不必重新设置控件模板。禁用虚拟化不是一个选项


注意:我使用的是DevExpress DataGrid,但这种行为也会发生在wpfdatagrid上。

您考虑过使用模板来实现吗

请注意,在链接中,您可以专门设置拇指的样式…

关于您的评论,您还可以尝试绑定到DataGrid中的项目数,并执行任何计算,以便根据项目数动态调整thumb的大小。

在该解决方案中,是否可以根据项目数调整thumb的大小?如果是这样,举个例子会很有帮助。