diff --git a/Knossos.NET/App.axaml.cs b/Knossos.NET/App.axaml.cs index ad208605..7a08c20e 100644 --- a/Knossos.NET/App.axaml.cs +++ b/Knossos.NET/App.axaml.cs @@ -51,15 +51,22 @@ public override void OnFrameworkInitializationCompleted() private void CreateMainWindow(IClassicDesktopStyleApplicationLifetime desktop) { - if(mainVM == null) + if (mainVM == null) { - mainVM = new MainWindowViewModel(); - } + desktop.MainWindow = new MainWindow + { + DataContext = new MainWindowViewModel() + }; - desktop.MainWindow = new MainWindow + mainVM = desktop.MainWindow.DataContext as MainWindowViewModel; + } + else { - DataContext = mainVM - }; + desktop.MainWindow = new MainWindow + { + DataContext = mainVM + }; + } desktop.MainWindow.Closing += (_, __) => { @@ -101,6 +108,7 @@ private async void StartTrayIcon() { MainWindow.instance?.FixMarginButtomTasks(); } + MainWindow.instance?.SetSize(mainVM?.WindowWidth, mainVM?.WindowHeight); trayIcon?.Dispose(); GC.Collect(); } diff --git a/Knossos.NET/ViewModels/Windows/MainWindowViewModel.cs b/Knossos.NET/ViewModels/Windows/MainWindowViewModel.cs index a4eb084f..03ea8193 100644 --- a/Knossos.NET/ViewModels/Windows/MainWindowViewModel.cs +++ b/Knossos.NET/ViewModels/Windows/MainWindowViewModel.cs @@ -43,10 +43,8 @@ public partial class MainWindowViewModel : ViewModelBase /* UI Bindings, use the uppercase version, otherwise changes will not register */ [ObservableProperty] internal string appTitle = "Knossos.NET v" + Knossos.AppVersion; - [ObservableProperty] - internal int windowWidth = 1200; - [ObservableProperty] - internal int windowHeight = 700; + public int? WindowWidth { get; private set; } = null; + public int? WindowHeight { get; private set; } = null; [ObservableProperty] internal int minWindowWidth = 900; [ObservableProperty] @@ -123,8 +121,8 @@ public MainWindowViewModel() //Apply customization for Single TC Mode Knossos.globalSettings.mainMenuOpen = CustomLauncher.MenuOpenFirstTime; AppTitle = CustomLauncher.WindowTitle + " v" + Knossos.AppVersion; - WindowHeight = CustomLauncher.WindowHeight.HasValue ? CustomLauncher.WindowHeight.Value : 1200; - WindowWidth = CustomLauncher.WindowWidth.HasValue ? CustomLauncher.WindowWidth.Value : 700; + WindowHeight = CustomLauncher.WindowHeight; + WindowWidth = CustomLauncher.WindowWidth; MinWindowWidth = CustomLauncher.MinWindowWidth.HasValue ? CustomLauncher.MinWindowWidth.Value : 900; MinWindowHeight = CustomLauncher.MinWindowHeight.HasValue ? CustomLauncher.MinWindowHeight.Value : 500; CustomHomeVM = new CustomHomeViewModel(); @@ -147,6 +145,7 @@ public MainWindowViewModel() MainWindow.instance?.FixMarginButtomTasks(); } } + MainWindow.instance?.SetSize(WindowWidth,WindowHeight); if (!Knossos.initIsComplete) { //Normal Startup diff --git a/Knossos.NET/Views/Windows/MainWindow.axaml b/Knossos.NET/Views/Windows/MainWindow.axaml index 79a98275..9c2511f1 100644 --- a/Knossos.NET/Views/Windows/MainWindow.axaml +++ b/Knossos.NET/Views/Windows/MainWindow.axaml @@ -4,8 +4,6 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:v="using:Knossos.NET.Views" - Width="{Binding WindowWidth}" - Height="{Binding WindowHeight}" MinWidth="{Binding MinWindowWidth}" MinHeight="{Binding MinWindowHeight}" x:DataType="vm:MainWindowViewModel" diff --git a/Knossos.NET/Views/Windows/MainWindow.axaml.cs b/Knossos.NET/Views/Windows/MainWindow.axaml.cs index 1893f9e3..8ec6360f 100644 --- a/Knossos.NET/Views/Windows/MainWindow.axaml.cs +++ b/Knossos.NET/Views/Windows/MainWindow.axaml.cs @@ -34,6 +34,19 @@ public void FixMarginButtomTasks() } } + /// + /// Change size of the main window + /// + /// + /// + public void SetSize(double? width, double? height) + { + if(width.HasValue) + this.Width = width.Value; + if(height.HasValue) + this.Height = height.Value; + } + protected override async void OnClosing(WindowClosingEventArgs e) { //Intercept closing, do stuff, then re-call close