protected override void OnWindowClosing(object sender, CancelEventArgs e) { base.OnWindowClosing(sender, e); e.Cancel |= !__CheckForSaving(); if (!e.Cancel && sender is Window window) { var windowSettings = new WindowSettings(); if (window.WindowState == WindowState.Maximized) { windowSettings.Left = window.RestoreBounds.Left; windowSettings.Top = window.RestoreBounds.Top; windowSettings.Width = window.RestoreBounds.Width; windowSettings.Height = window.RestoreBounds.Height; windowSettings.Maximized = true; } else { windowSettings.Left = window.Left; windowSettings.Top = window.Top; windowSettings.Width = window.Width; windowSettings.Height = window.Height; windowSettings.Maximized = false; } m_SettingsBll.SaveWindowSettings(windowSettings); } }