diff --git a/src/PolyTrader.App.Avalonia/App.axaml b/src/PolyTrader.App.Avalonia/App.axaml index 24b49b8..86d9486 100644 --- a/src/PolyTrader.App.Avalonia/App.axaml +++ b/src/PolyTrader.App.Avalonia/App.axaml @@ -1,7 +1,78 @@ + x:Class="PolyTrader.App.Avalonia.App"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -18,11 +89,11 @@ - - + @@ -50,13 +121,18 @@ - + + + + diff --git a/src/PolyTrader.App.Avalonia/App.axaml.cs b/src/PolyTrader.App.Avalonia/App.axaml.cs index 3274a6d..750ed81 100644 --- a/src/PolyTrader.App.Avalonia/App.axaml.cs +++ b/src/PolyTrader.App.Avalonia/App.axaml.cs @@ -28,6 +28,12 @@ namespace PolyTrader.App.Avalonia { if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop && Services != null) { + // Farbschema aus den Server-Settings übernehmen, BEVOR das erste Fenster entsteht – + // sonst blitzt kurz das helle Standardschema auf. + var settings = Services.GetRequiredService(); + Shell.ThemeManager.Initialize(settings, "server_settings.xml", + Services.GetRequiredService()); + var uiHost = Services.GetRequiredService(); CoreViews.Register(uiHost, Services); diff --git a/src/PolyTrader.App.Avalonia/Controls/SettingsEditor.axaml b/src/PolyTrader.App.Avalonia/Controls/SettingsEditor.axaml index 6acc58a..919a02d 100644 --- a/src/PolyTrader.App.Avalonia/Controls/SettingsEditor.axaml +++ b/src/PolyTrader.App.Avalonia/Controls/SettingsEditor.axaml @@ -29,7 +29,7 @@ @@ -106,7 +106,7 @@ + Foreground="{DynamicResource AppReadOnlyTextBrush}" /> diff --git a/src/PolyTrader.App.Avalonia/Controls/WindowMenuBar.axaml b/src/PolyTrader.App.Avalonia/Controls/WindowMenuBar.axaml index b920ffb..65c3148 100644 --- a/src/PolyTrader.App.Avalonia/Controls/WindowMenuBar.axaml +++ b/src/PolyTrader.App.Avalonia/Controls/WindowMenuBar.axaml @@ -14,7 +14,7 @@ (Avalonia kennt kein ToolStripItemAlignment.Right — die rechte Ausrichtung entsteht dadurch, dass der letzte Eintrag im DockPanel rechts angedockt wird.) --> - + @@ -25,6 +25,7 @@ @@ -66,7 +66,7 @@ diff --git a/src/PolyTrader.App.Avalonia/Views/LauncherWindow.axaml.cs b/src/PolyTrader.App.Avalonia/Views/LauncherWindow.axaml.cs index 450ba5e..1f4fd74 100644 --- a/src/PolyTrader.App.Avalonia/Views/LauncherWindow.axaml.cs +++ b/src/PolyTrader.App.Avalonia/Views/LauncherWindow.axaml.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.ObjectModel; using System.Linq; using Avalonia.Controls; @@ -62,10 +62,14 @@ namespace PolyTrader.App.Avalonia.Views e.Cancel = true; Dispatcher.UIThread.Post(_uiHost.RequestShutdown); }; + // Die Umschalterflaechen werden im Code gesetzt und folgen dem Thema nicht von selbst. + ThemeManager.ThemeChanged += UpdateTradingToggles; + Closed += (_, _) => { _statusTimer.Stop(); _uiHost.OpenStateChanged -= OnOpenStateChanged; + ThemeManager.ThemeChanged -= UpdateTradingToggles; }; } @@ -106,17 +110,18 @@ namespace PolyTrader.App.Avalonia.Views Apply(this.FindControl