在Windows Phone 7中,如何将BitmapImage保存到本地存储?

Jam*_*een 3 caching windows-phone-7

在Windows Phone 7中,如何将BitmapImage保存到本地存储?如果在接下来的几天内再次请求,我需要保存图像以进行缓存和重新加载.

Mat*_*cey 5

如果将文件保存到IsolatedStorage,则可以设置相对路径以从那里查看它.

这是一个快速示例,将XAP(作为资源)中包含的文件保存到隔离存储中.

using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
  if (!isoStore.FileExists(fileName)
  {
    var sr = Application.GetResourceStream(new Uri(fileName, UriKind.Relative));

    using (var br = new BinaryReader(sr.Stream))
    {
      byte[] data = br.ReadBytes((int)sr.Stream.Length);
      string strBaseDir = string.Empty;
      const string DelimStr = "/";
      char[] delimiter = DelimStr.ToCharArray();
      string[] dirsPath = fileName.Split(delimiter);

      // Recreate the directory structure
      for (int i = 0; i < dirsPath.Length - 1; i++)
      {
          strBaseDir = Path.Combine(strBaseDir, dirsPath[i]);
          isoStore.CreateDirectory(strBaseDir);
      }

      using (BinaryWriter bw = new BinaryWriter(isoStore.CreateFile(fileName)))
      {
          bw.Write(data);
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

您可能还对Ben GracewoodPeter Nowaks创建的图像缓存转换器感兴趣.它们都将保存图像显示在隔离存储中并从那里加载它们.