public Window ShowTabInNewWindow(ShellTabViewModel shellTab)
        {
            this.appShell.ViewModel.ShellTabs.Remove(shellTab);

            var shellViewPresenter = new ShellViewPresenter()
            {
                View = shellTab.View
            };

            var window = new Window
            {
                Content   = shellViewPresenter,
                Title     = shellTab.Title,
                MinWidth  = 400,
                MinHeight = 300
            };

            var awareViewModel = shellTab.View.DataContext as IShellViewStateAware;

            awareViewModel?.ShellViewStateChanged(ShellViewState.Window);

            window.Show();
            var windowHandle = new WindowInteropHelper(window).Handle;

            WinApi.SetForegroundWindow(windowHandle);

            this.RegisterWindowClosable(window, shellTab.View.DataContext as IClosable);
            this.UnregisterTabCloseable(shellTab);

            return(window);
        }
        public Window ShowInNewWindow(string title, UserControl view, ViewModelBase viewModel, int minWidth,
                                      int minHeight, bool isDialog = false)
        {
            view.DataContext = viewModel;

            var shellViewPresenter = new ShellViewPresenter()
            {
                View = view
            };

            var window = new Window
            {
                Content   = shellViewPresenter,
                Title     = title,
                MinWidth  = minWidth,
                MinHeight = minHeight
            };

            var awareViewModel = viewModel as IShellViewStateAware;

            awareViewModel?.ShellViewStateChanged(ShellViewState.Window);

            this.RegisterWindowClosable(window, viewModel as IClosable);

            if (isDialog)
            {
                window.ShowDialog();
            }
            else
            {
                window.Show();
            }

            //var windowHandle = new WindowInteropHelper(window).Handle;
            //WinApi.SetForegroundWindow(windowHandle);

            return(window);
        }