最小化内存消耗图像列表框(WPF)

我有列表框绑定到ObservableCollection并使用文件名来显示图像 在此处输入图像描述

我的xaml是:

                            

问题是,如果我有一个大型集合,它会加载整个图像并消耗大量内存。 如何最大限度地减少内存消耗?

启用UI虚拟化。 然后将回收UI控件并使用最少量的内存。

您也可以加载缩略图而不是完全成熟的照片。


一些资源可供阅读:

http://www.codeproject.com/Articles/34405/WPF-Data-Virtualization https://stackoverflow.com/questions/14456075/how-to-enable-ui-virtualization-in-standard-wpf-listview WPF ListBox使用ListBox – UI虚拟化和滚动 http://www.zagstudio.com/blog/497#.UQKxpScqb6U

加载图像后,将其调整为更大的可管理大小,然后释放未使用的大图像。 这仍然需要很长时间才能加载,但会占用更少的内存。 要减少加载时间,请参阅dutzu's答案并使用延迟加载和虚拟化。

使用虚拟化堆栈面板查看链接以获取有关如何执行此操作的示例。

http://www.jonathanantoine.com/2011/10/07/wpf-4-5-%E2%80%93-part-11-new-features-for-the-virtualizingpanel/