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