我有ScrollViewer
包含StackPanel
,其中包含超过1000个项目,每个项目都包含一堆其他项目。它在空闲时或当我实际滚动它时表现得像一个冠军。但是,当我调整大小或导致其调整大小的任何内容(例如包含顶级窗口)时,它会变得非常缓慢,冻结,并且需要大约30秒才能解冻并调整大小。
我发现在调整大小之前将VerticalScrollBarVisibility
设置为ScrollBarVisibility.Hidden
或ScrollBarVisibility.Disabled
会使其非常顺畅。但是,启用和禁用ScrollBarVisibility
每个大约需要5秒钟,这比等待30秒调整大小要好,但是等待时间仍然太长。
我可以做些什么来帮助调整包含多个项目的StackPanel
中ScrollPanel
的大小调整后的效果?
答案 0 :(得分:1)
您可能会考虑切换到列表框(我知道,听起来很奇怪,但是听我说)。列表框使用虚拟化堆栈面板 - 它管理实际在内存中的控件数量,并在滚动时创建它们。
您可以使用datatemplate使每个列表框项看起来像您想要的任何内容。
(请注意,这都是假设您正在显示某种重复数据)。