WPF showing dialog before main window

dialog, wpf

Solution

Here's the full solution that worked for me:

In App.xaml, I remove the `StartupUri` stuff, and add a `Startup` handler:

<Application x:Class="MyNamespace.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Startup="ApplicationStart">
</Application>

In App.xaml.cs, I define the handler as follows:

public partial class App
{
    private void ApplicationStart(object sender, StartupEventArgs e)
    {
        //Disable shutdown when the dialog closes
        Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;

        var dialog = new DialogWindow();

        if (dialog.ShowDialog() == true)
        {
            var mainWindow = new MainWindow(dialog.Data);
            //Re-enable normal shutdown mode.
            Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
            Current.MainWindow = mainWindow;
            mainWindow.Show();
        }
        else
        {
            MessageBox.Show("Unable to load data.", "Error", MessageBoxButton.OK);
            Current.Shutdown(-1);
        }
    }
}

Problem

How one can show dialog window (e.g. login / options etc.) before the main window? Here is what I tried (it apparently has once worked, but not anymore): XAML: ``` <Application ... Startup="Application_Startup"> ``` Application: ``` public partial class App : Application { private void Application_Startup(object sender, StartupEventArgs e) { Window1 myMainWindow = new Window1(); DialogWindow myDialogWindow = new DialogWindow(); myDialogWindow.ShowDialog(); } } ``` Outcome: myDialogWindow is shown first. When it is closed, the Window1 is shown as expected. But as I close Window1 the application does not close at all.

Original source