IsaolatedStorage

1 article

Isolated Storage et Images sous Windows Phone 8

Je vous propose un petit tour d’horizon sur le stockage d’images dans l’Isolated Storage.

Pour rappel, l’Isolated storage est l’emplacement réservé à votre application Windows Phone pour le stockage de fichiers.

Quelles sont les implémentations qui permettent de récupérer une image déjà stockée dans cet espace ? Quelles sont les méthodes les plus efficaces ?

L’implémentation classique (Windows Phone 7)

C’est l’implémentation standard « old school » : j’utilise GetUserStoreForApplication() et OpenFile pour lire un Stream. Le Stream est ensuite lu par le BitmapImage et renvoyé dans une Action.

public static void LoadImageFromStorage(string name, Action<BitmapImage> actionBitmap)
{
    using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
    {
        if (myIsolatedStorage != null && myIsolatedStorage.FileExists(name))
        {
            IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(name, FileMode.Open, FileAccess.Read);
            {
                Deployment.Current.Dispatcher.BeginInvoke(() =>
                {
                    BitmapImage bitmapSource = new BitmapImage();
                    bitmapSource.SetSource(fileStream);
                    if (actionBitmap != null)
                        actionBitmap(bitmapSource);
                });
            }
        }
    }
}

Remarque 1

BitmapImage nécessite de s’exécuter dans le ThreadUI principal, pour cela, on utilise

Deployment.Current.Dispatcher.BeginInvoke(() =>

Poursuivre la lecture