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