Bonjour,

Dans mon projet WPF j'ai une Image que je modifie via le code C# par ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ImgPoster.Source = new BitmapImage(new Uri(Path,
                       UriKind.Absolute));
Le "Path" n'est pas une Url mais un chemin tel que "C:\"

Seulement même quand j'ai modifié l'image, la précédente n'est pas libérée.

Après pas mal de recherches j'ai essayé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Application.Current.Dispatcher.Invoke((Action)delegate
                    {
                        ImgPoster.Source = new BitmapImage(new Uri(Path,
                       UriKind.Absolute));
                    });
Mais toujours le même problème.

J'ai aussi essayé cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Stream ImgStream = new FileStream(Path, FileMode.Open, FileAccess.Read, FileShare.Read);
JpegBitmapDecoder decoder = new JpegBitmapDecoder(ImgStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapSource ImgSource = decoder.Frames[0];
ImgPoster.Source = ImgSource;
Pensant pouvoir supprimer le flux contenu lorsque je change d'image mais je n'y suis pas parvenu.

Malheureusement il ne semble pas exister une fonctionne telle que "ImgPoster.Dispose()"...

J'espère que vous serez plus inspiré que moi sur ce coup là..

Merci