Files
gif-resizer/GifResizer/Views/MainWindow.xaml.cs

71 lines
1.9 KiB
C#

using System.Windows;
using System.Windows.Input;
using GifResizer.ViewModels;
using Microsoft.Win32;
namespace GifResizer.Views;
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
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);
}
}