Ho un'applicazione WPF che acquisisce un'immagine istantanea da un file video. L'utente può definire il timestamp da cui prendere l'immagine. L'immagine viene quindi salvata in una posizione temporanea su disco e viene quindi resa in un elemento <image>
.WPF Image Caching
L'utente dovrebbe quindi essere in grado di selezionare un diverso timestamp, che quindi sovrascrive il file temporaneo su disco - questo dovrebbe quindi essere visualizzato all'interno dell'elemento <image>
.
Utilizzando Image.Source = null;
, posso chiaro il file immagine dall'elemento <image>
, in modo da visualizzare uno spazio vuoto, invece. Tuttavia, se il file immagine di origine viene quindi sovrascritto con una nuova immagine (con lo stesso nome) e caricato nell'elemento <image>
, lo stato mostra ancora l'immagine precedente.
Sto usando la seguente logica:
// Overwrite temporary file file here
// Clear out the reference to the temporary image
Image_Preview.Source = null;
// Load in new image (same source file name)
Image = new BitmapImage();
Image.BeginInit();
Image.CacheOption = BitmapCacheOption.OnLoad;
Image.UriSource = new Uri(file);
Image.EndInit();
Image_Preview.Source = Image;
L'immagine visualizzata nell'elemento <image>
non cambia, anche se il file originale è stata completamente sostituita. C'è un problema di cache delle immagini qui di cui non sono a conoscenza?
Grazie, darò questo una prova :) –
Quello ha funzionato perfettamente Userò 'FileStream' da ora in poi ogni volta che voglio evitare la memorizzazione nella cache. Grazie. –
Ero alle prese con lo stesso problema. Grazie! – Misiu