private void OpenWindow(WindowPositionSide side, WpfScreen screen) { if (side == WindowPositionSide.None || side == WindowPositionSide.Top) { return; } CloseWindow(); double dockwindowLeft; switch (side) { case WindowPositionSide.Left: dockwindowLeft = WpfScreen.MostLeftX; break; case WindowPositionSide.Right: dockwindowLeft = WpfScreen.MostRightX - 300; break; case WindowPositionSide.Top: return; default: throw new ArgumentOutOfRangeException(nameof(side)); } _placeholderWindow = new DockPlaceholderWindow(screen.WorkingArea.Top, dockwindowLeft, screen.WorkingArea.Height, 300); _placeholderWindow.Show(); }
private async void CloseWindow() { if (_placeholderWindow != null && _placeholderWindow.IsLoaded) { await Application.Current.Dispatcher.BeginInvoke(new Action(() => _placeholderWindow.Close())); _placeholderWindow = null; } }