Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        private async void CloseWindow()
        {
            if (_placeholderWindow != null && _placeholderWindow.IsLoaded)
            {
                await Application.Current.Dispatcher.BeginInvoke(new Action(() => _placeholderWindow.Close()));

                _placeholderWindow = null;
            }
        }