private async void SaveAs_Click(SplitButton sender, SplitButtonClickEventArgs args) { FileSavePicker Picker = new FileSavePicker { SuggestedFileName = Path.GetFileNameWithoutExtension(OriginFile.Name), SuggestedStartLocation = PickerLocationId.Desktop }; Picker.FileTypeChoices.Add($"PNG {Globalization.GetString("Transcode_Dialog_Format_Text")}", new List <string>() { ".png" }); Picker.FileTypeChoices.Add($"JPEG {Globalization.GetString("Transcode_Dialog_Format_Text")}", new List <string>() { ".jpg" }); Picker.FileTypeChoices.Add($"BMP {Globalization.GetString("Transcode_Dialog_Format_Text")}", new List <string>() { ".bmp" }); Picker.FileTypeChoices.Add($"GIF {Globalization.GetString("Transcode_Dialog_Format_Text")}", new List <string>() { ".gif" }); Picker.FileTypeChoices.Add($"TIFF {Globalization.GetString("Transcode_Dialog_Format_Text")}", new List <string>() { ".tiff" }); StorageFile File = await Picker.PickSaveFileAsync(); if (File != null) { LoadingControl.IsLoading = true; using (IRandomAccessStream Stream = await File.OpenAsync(FileAccessMode.ReadWrite)) { Stream.Size = 0; switch (File.FileType) { case ".png": await Cropper.SaveAsync(Stream, BitmapFileFormat.Png).ConfigureAwait(true); break; case ".jpg": case ".jpeg": await Cropper.SaveAsync(Stream, BitmapFileFormat.Jpeg).ConfigureAwait(true); break; case ".bmp": await Cropper.SaveAsync(Stream, BitmapFileFormat.Bmp).ConfigureAwait(true); break; case ".gif": await Cropper.SaveAsync(Stream, BitmapFileFormat.Gif).ConfigureAwait(true); break; case ".tiff": await Cropper.SaveAsync(Stream, BitmapFileFormat.Tiff).ConfigureAwait(true); break; default: throw new InvalidOperationException("Unsupport image format"); } } await Task.Delay(1000).ConfigureAwait(true); LoadingControl.IsLoading = false; Frame.GoBack(); } }