private async void Save_Btn_Click(object sender, EventArgs e) { ProgressIndicator.IsRunning = true; SetScreenButtonsEnabled(false); //save to isolated storage DateTime now = DateTime.Now; string photoName = String.Format("{0}.jpg", now.Ticks); using (IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) { if (isolatedStorage.FileExists(photoName)) { isolatedStorage.DeleteFile(photoName); } //save photo WriteableBitmap photo = new WriteableBitmap((int)App.PhotoModel.Width, (int)App.PhotoModel.Height); await App.PhotoModel.RenderBitmapAsync(photo); IsolatedStorageFileStream fileStream = isolatedStorage.CreateFile(photoName); System.Windows.Media.Imaging.Extensions.SaveJpeg(photo, fileStream, photo.PixelWidth, photo.PixelHeight, 0, Constant.JpegQuality); fileStream.Close(); /* * WriteableBitmap smallThumbnailPhoto = new WriteableBitmap(Constant.ThumbnailSmallSide, Constant.ThumbnailSmallSide); * Bitmap smallThumbnail = await App.ThumbnailModel.RenderThumbnailBitmapAsync(Constant.ThumbnailSmallSide); * using (EditingSession session = new EditingSession(smallThumbnail)) * { * await session.RenderToBitmapAsync(smallThumbnailPhoto.AsBitmap()); * } * IsolatedStorageFileStream smallThumbnailStream = isolatedStorage.CreateFile(smallThumbName); * System.Windows.Media.Imaging.Extensions.SaveJpeg(smallThumbnailPhoto, smallThumbnailStream, Constant.ThumbnailSmallSide, Constant.ThumbnailSmallSide, 0, Constant.JpegQuality); * smallThumbnailStream.Close(); * * WriteableBitmap largeThumbnailPhoto = new WriteableBitmap(Constant.ThumbnailLargeSide, Constant.ThumbnailLargeSide); * Bitmap largeThumbnail = await App.ThumbnailModel.RenderThumbnailBitmapAsync(Constant.ThumbnailLargeSide); * using (EditingSession session = new EditingSession(largeThumbnail)) * { * await session.RenderToBitmapAsync(largeThumbnailPhoto.AsBitmap()); * } * IsolatedStorageFileStream largethumbnailStream = isolatedStorage.CreateFile(largeThumbName); * System.Windows.Media.Imaging.Extensions.SaveJpeg(largeThumbnailPhoto, largethumbnailStream, Constant.ThumbnailLargeSide, Constant.ThumbnailLargeSide, 0, Constant.JpegQuality); * largethumbnailStream.Close(); */ } if (_dateIndex == -1) { _dateIndex = GetNewPhotoIndex(); } Entry entry = new Entry() { ImgSrc = photoName, Time = DatePicker.Value == null ? now : (DateTime)DatePicker.Value, Date = App.ViewModelData.AllDates[_dateIndex], Note = (TxtBoxCaption.Text.Trim().Equals(String.Empty) || TxtBoxCaption.Text.Trim().Equals("")) ? AppResources.TextID27 : TxtBoxCaption.Text.Trim(), Location = (TxtBoxLocation.Text.Trim().Equals(String.Empty) || TxtBoxLocation.Text.Trim().Equals("")) ? AppResources.TextID28 : TxtBoxLocation.Text.Trim() }; App.ViewModelData.AddEntry(entry, _dateIndex); ProgressIndicator.IsRunning = false; // clean up if (App.PhotoModel != null) { App.PhotoModel.Dispose(); App.PhotoModel = null; GC.Collect(); } if (App.ThumbnailModel != null) { App.ThumbnailModel.Dispose(); App.ThumbnailModel = null; GC.Collect(); } OSHelper.RemoveAllBackStackButFirst(); if (NavigationService.CanGoBack) { NavigationService.GoBack(); } }