在开发照片查看器应用程序时遇到了问题.我使用ListBox来显示图像,它包含在ObservableCollection中.我将ListBox的ItemsSource绑定到ObservableCollection.
我还使用滑块绑定ListBox中的Image'height.(滑块的Value也绑定到zoombarmanager.ZoomBarWidth.Width).但我发现如果集合变得更大,例如:包含超过1000个图像,如果我使用滑块来改变iamges的大小,它会变得有点慢.我的问题是.1.为什么变慢?变得它试图缩放每个图像,或者只是因为通知("宽度")被调用超过1000次.2.有没有什么方法可以解决这类问题并加快速度.
PhotoListBoxStyle是这样的:
但是如果我使用上面的Style,我必须在ListBox之外使用ScrollViewer,否则我不知道如何获得平滑的滚动滚动条并且wrappanel似乎没有默认的滚动条.有人帮吗?据说滚动查看器的列表框性能不佳.
问题是您的新布局面板是WrapPanel,它不支持虚拟化!可以创建自己的Virtualized WrapPanel ...阅读更多在这里
另请阅读有关实现IScrollInfo等其他问题的更多信息 在此处
我还强烈建议您不要仅仅为了替换布局面板而创建新的控件模板...而是执行以下操作:
这样做的好处是您不需要将列表框包装在滚动查看器中!
[ 更新 ]另请阅读本文章由约什-史密斯!要使WrapPanel包装......您还必须记住禁用水平滚动...