private void LoadPreviews(string[] pathes) { foreach (var path in pathes) { var original = new BitmapImage(); original.BeginInit(); original.UriSource = new Uri(path); original.EndInit(); double ratio = Constants.PreviewWidth / original.Width; var reducedPreview = new BitmapImage(); reducedPreview.BeginInit(); reducedPreview.UriSource = new Uri(path); reducedPreview.DecodePixelWidth = Constants.PreviewWidth; reducedPreview.DecodePixelHeight = (int)(original.Height * ratio); reducedPreview.EndInit(); var im = new Image { Source = reducedPreview, Height = Constants.PreviewHeight, HorizontalAlignment = HorizontalAlignment.Center }; ImagesPreview.Add(im); } }
private void RemoveImageFromView() { OpenedImage.Remove(); if (CurrentIndex != -1) { ImagesPreview.RemoveAt(CurrentIndex); } OnPropertyChanged(); Console.WriteLine(OpenedImage.CurrentIndex); }
private void AddPreviewIcon(ImageSource icon) { Image im = new Image() { Source = icon, Height = Constants.PreviewHeight, HorizontalAlignment = HorizontalAlignment.Center }; ImagesPreview.Add(im); }
private void SafeSwitchToEditMode() { StoreSelectedIndex(); if (IsView) { editor.loadImage(OpenedImage.CurrentPath); var v = CurrentView; ImagesPreview.Clear(); AddPreviewIcon(v); } ViewModelState = ProgrammState.Edit; }
private void DiscardChanges() { MessageBoxResult confirm = MessageBox.Show("Are you sure to discard all changes?", "Discarding all changes...", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes, MessageBoxOptions.DefaultDesktopOnly); if (confirm == MessageBoxResult.Yes) { ImagesPreview.Clear(); LoadPreviews(OpenedImage.GetAllPathes()); ViewModelState = ProgrammState.View; CurrentIndex = 0; RestoreSelectedIndex(); } }
private void RevertChanges(int selectedIndex) { if (selectedIndex < ImagesPreview.Count - 1) { var confirm = MessageBox.Show("Are you sure to restore image?", "Restoring...", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes, MessageBoxOptions.DefaultDesktopOnly) == MessageBoxResult.Yes; if (confirm) { ViewModelState = ProgrammState.Revert; editor.restore(selectedIndex); CurrentView = ConvertBitmapToImageSource(editor.getSource()); for (int i = ImagesPreview.Count - 1; i > selectedIndex; i--) { ImagesPreview.RemoveAt(i); } ViewModelState = ProgrammState.Edit; } } }