コード例 #1
0
        public void Show()
        {
            lock (_lock)
            {
                if (_state == GoToWindowState.Shown)
                {
                    Log.Debug("Sending Tab Again to Main Window.");
                    _mainWindow.ShortcutAgain();
                    return;
                }

                if (_state != GoToWindowState.Hidden)
                {
                    return;
                }

                Log.Debug("Showing Main Window.");
                _state = GoToWindowState.Showing;
            }

            if (Showing != null)
            {
                Showing(this, new EventArgs());
            }

            SetAvailableWindowSize(SystemParameters.PrimaryScreenWidth, SystemParameters.PrimaryScreenHeight);
            _mainWindow.Left = SystemParameters.PrimaryScreenWidth / 2f - _mainViewModel.AvailableWindowWidth / 2f;
            _mainWindow.Top  = SystemParameters.PrimaryScreenHeight / 2f - (_mainViewModel.AvailableWindowHeight + 56) / 2f;
            _mainWindow.Show();

            if (_mainWindowEntry == null)
            {
                var interopHelper = new WindowInteropHelper(_mainWindow);
                _mainWindowEntry = WindowEntryFactory.Create(interopHelper.Handle);

                Log.DebugFormat("GoToWindow main window created with hWnd {0}", _mainWindowEntry.HWnd);
            }

            _mainWindow.SetFocus();
            _mainWindowEntry.Focus();

            Application.Current.Dispatcher.InvokeAsync(LoadViewModel, DispatcherPriority.Background);
        }
コード例 #2
0
ファイル: GoToWindowContext.cs プロジェクト: hanw3/GoToWindow
        public void Show()
        {
            lock (_lock)
            {
                if (_mainWindow != null)
                {
                    Log.Debug("Sending Tab Again to Main Window.");
                    _mainWindow.ShortcutAgain();
                    return;
                }

                _mainViewModel = new MainViewModel();

                SetAvailableWindowSize(SystemParameters.PrimaryScreenWidth, SystemParameters.PrimaryScreenHeight);

                _mainWindow = new MainWindow {
                    DataContext = _mainViewModel
                };
                _mainWindow.Closing  += _mainWindow_Closing;
                _mainViewModel.Close += _mainViewModel_Close;

                Showing?.Invoke(this, new EventArgs());

                _mainWindow.Left  = SystemParameters.PrimaryScreenWidth / 2f - _mainViewModel.AvailableWindowWidth / 2f;
                _mainWindow.Top   = SystemParameters.PrimaryScreenHeight / 2f - (_mainViewModel.AvailableWindowHeight + 56) / 2f;
                _mainWindow.Width = _mainViewModel.AvailableWindowWidth;

                _mainWindow.Show();

                var interopHelper = new WindowInteropHelper(_mainWindow);
                _mainWindowEntry = WindowEntryFactory.Create(interopHelper.Handle);

                Log.DebugFormat("GoToWindow main window created with hWnd {0}", _mainWindowEntry.HWnd);

                _mainWindow.SetFocus();
                _mainWindowEntry.Focus();

                Application.Current.Dispatcher.InvokeAsync(LoadViewModel, DispatcherPriority.Input);
            }
        }
コード例 #3
0
 public void Select()
 {
     _entry.Focus();
 }