Ответ 1
Одним из возможных решений могло бы быть скрытое окно, в котором есть все окна в вашем приложении.
Вы объявили бы это что-то вроде:
<Window
Opacity="0"
ShowInTaskbar="False"
AllowsTransparency="true"
WindowStyle="None">
Обязательно удалите StartupUri из App.xaml. И в вашем App.xaml.cs вы бы переопределили OnStartup, чтобы выглядеть примерно так:
protected override void OnStartup(StartupEventArgs e)
{
HiddenMainWindow window = new HiddenMainWindow();
window.Show();
Window1 one = new Window1();
one.Owner = window;
one.Show();
Window2 two = new Window2();
two.Owner = window;
two.Show();
}
Еще одна трудность будет заключаться в том, как вы хотите справиться с закрытием реального приложения. Если одно из этих окон считается MainWindow, вы можете просто изменить приложение ShutdownMode на ShutdownMode.OnMainWindowClose, а затем установить свойство MainWindow в любое из этих окон. В противном случае вам нужно будет определить, когда все окна будут закрыты, и явно вызовите Shutdown.