Minimiser la liste des images consommées en mémoire (WPF)

J’ai listbox qui se lie à ObservableCollection et prend le nom de fichier pour afficher des images entrez la description de l'image ici

Mon xaml est:

                            

Le problème est que cela charge des images entières et consum beaucoup de RAM si j’ai une grande collection. Comment minimiser sa consommation de mémoire?

Activer la virtualisation de l’interface utilisateur. Ensuite, les contrôles de l’interface utilisateur seront recyclés et la quantité de mémoire minimale sera utilisée.

Vous pouvez également charger des vignettes au lieu des photos à part entière.


Quelques ressources à lire:

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 with a ListBox – Virtualisation et défilement de l’interface utilisateur http://www.zagstudio.com/blog/497#.UQKxpScqb6U

Une fois l’image chargée, redimensionnez-la à une taille plus gérable, puis libérez la grande image non utilisée. Cela prendra encore beaucoup de temps à charger mais cela demandera moins de mémoire. Pour réduire le temps de chargement, voir dutzu's réponse dutzu's et utilisez le chargement et la virtualisation dutzu's .

Utiliser un Stackpanel de virtualisation Consultez le lien pour voir un exemple de la procédure à suivre.

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