public static void AsyncImageLoad(string fileName, Person person) { IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication(); using (IsolatedStorageFileStream stream = file.OpenFile(fileName, FileMode.Open)) { buffer = new byte[stream.Length]; ImageAsyncState state = new ImageAsyncState() { Stream = stream, Person = person }; stream.BeginRead(buffer, 0, buffer.Length, new AsyncCallback(ImageReadCompleted), state); } }
static void ImageReadCompleted(IAsyncResult result) { ImageAsyncState state = (ImageAsyncState)result.AsyncState; state.Stream.EndRead(result); MemoryStream mStream = new MemoryStream(buffer); BitmapImage image = new BitmapImage(); image.SetSource(mStream); WriteableBitmap wb = new WriteableBitmap(image); state.Person.Image = wb; }