Ejemplo n.º 1
0
        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);
                }
            }
        }