using System.Windows; using System.Windows.Input; using GifResizer.ViewModels; using Microsoft.Win32; namespace GifResizer.Views; /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { private readonly MainViewModel _mainViewModel; public MainWindow(MainViewModel viewModel) { InitializeComponent(); _mainViewModel = viewModel; DataContext = _mainViewModel; } private void BrowseButton_Click(object sender, RoutedEventArgs e) { try { OpenFileDialog fileDialog = new OpenFileDialog { Title = "Select a GIF file", Filter = "GIF files (*.gif)|*.gif|All files (*.*)|*.*" }; if (fileDialog.ShowDialog() == true) { _mainViewModel.LoadGifData(fileDialog.FileName); } } catch (Exception ex) { DisplayErrorMessage("An error occured while selecting the GIF file: " + ex.Message); } } private void ResizeButton_Click(object sender, RoutedEventArgs e) { try { _mainViewModel.ResizeGif(); DisplaySuccessMessage("Resize successful!"); } catch (Exception ex) { DisplayErrorMessage("An error occured while resizing the GIF: " + ex.Message); } } private void IntegerOnly(object sender, TextCompositionEventArgs e) { e.Handled = !int.TryParse(e.Text, out _); } private void DisplayErrorMessage(string message) { MessageBox.Show(message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } private void DisplaySuccessMessage(string message) { MessageBox.Show(message, "Success", MessageBoxButton.OK, MessageBoxImage.Information); } }