public void UpdateRectAndWindowState() { WinApi.WindowPlacement windowPlacement = WinApi.GetWindowPlacement(Hwnd.Handle); if (windowPlacement != null) { WinState = windowPlacement.WinState; Rect = ((WinState == WindowState.Maximized) ? WinApi.GetWindowRectangle(Hwnd.Handle) : windowPlacement.RestoreWindow); } preUpdateRectAndWindowStateIfNeedTime = DateTime.Now; }
private void ListenDeskLocatoinChanged() { if (_isLocationChanged || (DateTime.Now - _preUpdateLocationTime).TotalSeconds >= 2) { _isLocationChanged = false; _preUpdateLocationTime = DateTime.Now; WinApi.WindowPlacement windowPlacement = WinApi.GetWindowPlacement(Hwnd.Handle); if (windowPlacement != null) { WinState = windowPlacement.WinState; RestoreRect = windowPlacement.RestoreWindow; } } }