DataGrid滚动条缩略图在滚动期间更改大小

时间:2012-10-31 14:42:23

标签: .net wpf datagrid scrollbar virtualization

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

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

我的问题:有没有办法可以使用自己的启发式方法自行设置滚动缩略图尺寸?最好采用非侵入式方式,因此我不必重新模板化我的控件。禁用虚拟化不是一种选择。

注意:我正在使用DevExpress DataGrid,但WPF DataGrid也会出现这种情况。

1 个答案:

答案 0 :(得分:1)

您是否考虑过将模板用于style your scrollbar

请注意链接中您可以专门设置 thumb 的样式...
关于您的评论,您还可以尝试绑定到DataGrid中的项目数,并根据项目数执行您想要使拇指动态大小的任何计算。