using System.Windows; using System.Windows.Media.Animation; using XFEExtension.NetCore.InputSimulator; using XFEToolBox.Profiles.CrossVersionProfiles; using XFEToolBox.Utilities; using XFEToolBox.ViewModel.Windows; namespace XFEToolBox.Views.Windows { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public static MainWindow? Current { get; private set; } public MainWindowViewModel ViewModel { get; private set; } public MainWindow() { InitializeComponent(); ViewModel = new MainWindowViewModel(this); DataContext = ViewModel; Current = this; Width = SystemProfile.MainWindowWidth; Height = SystemProfile.MainWindowHeight; WindowState = SystemProfile.StartWithMaximize ? WindowState.Maximized : WindowState.Normal; } private void MinimizeImage_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) => ViewModel.Minimize(); private void CloseWindowImage_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) => MainWindowViewModel.CloseWindow(); private void DragTabBorder_MouseMove(object sender, System.Windows.Input.MouseEventArgs e) { if (e.LeftButton == System.Windows.Input.MouseButtonState.Pressed) { if (WindowState == WindowState.Maximized) { WindowState = WindowState.Normal; var mousePosition = InputSimulator.GetMousePosition(); Left = mousePosition.X / SystemProfile.CurrentWindowDPIScale - Width / 2; Top = mousePosition.Y / SystemProfile.CurrentWindowDPIScale - 10; } DragMove(); } } private void DragTabBorder_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (ViewModel.CheckDoubleClick(500)) _ = WindowState == WindowState.Maximized ? WindowState = WindowState.Normal : WindowState = WindowState.Maximized; } private void Window_Loaded(object sender, RoutedEventArgs e) { mainButton.IsChecked = true; ViewModel.GetDPIScale(); } private void ContentFrame_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e) { var storyboard = new Storyboard(); var fadeIn = new DoubleAnimation { From = 0, To = 1, Duration = new Duration(TimeSpan.FromMilliseconds(300)), EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut } }; Storyboard.SetTarget(fadeIn, contentFrame); Storyboard.SetTargetProperty(fadeIn, new PropertyPath("Opacity")); storyboard.Children.Add(fadeIn); storyboard.Begin(); } private void CornerBorder_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) => ViewModel.InitializeToResize(); private void BackTabBorder_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e) => NavigationCenter.GoBack(); } }