private void ImageDropZone_Drop(object sender, DragEventArgs e) { ViewModel.IsDragging = false; if (e.Data.GetDataPresent(DataFormats.FileDrop)) { var files = new List <string>((string[])e.Data.GetData(DataFormats.FileDrop)); if (files.Count == 1) { e.Handled = true; try { var image = new BitmapImage(new Uri(files[0])); ViewModel.Image = image; ViewModel.UpdateFromImage(); } catch (Exception) { Locator.Current.GetService <ILoggerService>().Warning("Image type not supported"); } try { var metadata = ViewModel.Image.Metadata as BitmapMetadata; if (metadata.ContainsQuery("System.Photo.Orientation")) { switch (metadata.GetQuery("System.Photo.Orientation")) { case 4: _imageScale.SetCurrentValue(ScaleTransform.ScaleYProperty, (double)-1); break; default: _imageScale.SetCurrentValue(ScaleTransform.ScaleYProperty, (double)1); break; } } } catch (Exception) { _imageScale.SetCurrentValue(ScaleTransform.ScaleYProperty, (double)1); } ResetZoomPan(null, null); } } }