2

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

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

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

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

4

1 回答 1

1

您是否考虑过使用模板来设置滚动条的样式

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

于 2012-10-31T14:52:42.017 回答