3

我有一个ScrollViewer包含StackPanel1000 多个项目的容器,每个项目都包含一堆其他项目。它在空闲时或当我实际滚动时表现得像个冠军。但是,当我调整它的大小或导致它调整大小的任何东西(例如包含顶级窗口)时,它会变得非常慢,冻结,并且需要大约 30 秒才能解冻并调整大小。

我发现设置VerticalScrollBarVisibilityScrollBarVisibility.HiddenScrollBarVisibility.Disabled在我调整大小之前使其非常平滑。但是,启用和禁用ScrollBarVisibility每个大约需要 5 秒,虽然这比等待 30 秒调整大小要好,但仍然等待太长。

我可以做些什么来帮助在调整包含许多项目StackPanel的 a 中获得性能?ScrollPanel

4

1 回答 1

1

您可能会考虑切换到列表框(我知道,听起来很奇怪,但请听我说)。列表框使用虚拟化堆栈面板——它管理实际在内存中的控件数量,并在您滚动时创建它们。

您可以使用数据模板使每个列表框项目看起来像您想要的任何东西。

(注意,这都是假设您正在显示某种重复数据)。

于 2012-07-18T21:11:34.337 回答