private void Window_OnSizeChanged(object sender, SizeChangedEventArgs e) { if (WindowState == WindowState.Maximized) { WindowStateHelper.SetWindowMaximized(this); WindowStateHelper.BlockStateChange = true; var screen = ScreenFinder.FindAppropriateScreen(this); if (screen != null) { Top = screen.WorkingArea.Top; Left = screen.WorkingArea.Left; Width = screen.WorkingArea.Width; Height = screen.WorkingArea.Height; } ShowRestoreDownButton(); } else { if (WindowStateHelper.BlockStateChange) { WindowStateHelper.BlockStateChange = false; return; } WindowStateHelper.UpdateLastKnownNormalSize(Width, Height); WindowStateHelper.UpdateLastKnownLocation(Top, Left); } }
private void WindowDraggableArea_OnPreviewMouseDown(object sender, MouseButtonEventArgs e) { if (e.LeftButton != MouseButtonState.Pressed) { return; } if (WindowStateHelper.IsMaximized) { WindowStateHelper.SetWindowSizeToNormal(this, true); DragMove(); } else { DragMove(); } WindowStateHelper.UpdateLastKnownLocation(Top, Left); }
public void Restore_Click(object sender, RoutedEventArgs e) { ShowMaximumWindowButton(); WindowStateHelper.SetWindowSizeToNormal(this); }