using System.Text.Json; namespace LehrerApp.Desktop.Services; public sealed class WindowSettings { public double Width { get; set; } = 1280; public double Height { get; set; } = 800; public bool IsMaximized { get; set; } } /// /// Merkt sich Fenstergröße und Maximiert-Status über Sitzungen hinweg (14.6). Bewusst OHNE /// Fensterposition: ein Laptop, der mal mit, mal ohne externen Monitor läuft, könnte sonst dazu /// führen, dass das Fenster bei der nächsten Sitzung außerhalb jedes sichtbaren Bildschirms /// landet — die Größe allein ist der Teil, der täglich beim Korrigieren am Abend stört. /// public sealed class WindowSettingsService { private readonly string _configPath; public WindowSettingsService(string appDataPath) => _configPath = Path.Combine(appDataPath, "windowsettings.json"); public WindowSettings Load() { try { if (File.Exists(_configPath)) { var loaded = JsonSerializer.Deserialize(File.ReadAllText(_configPath)); if (loaded is { Width: >= 200, Height: >= 150 }) return loaded; } } catch { /* beschädigte Konfiguration -> Standardgröße */ } return new WindowSettings(); } public void Save(WindowSettings settings) => File.WriteAllText(_configPath, JsonSerializer.Serialize(settings)); }