具有模态MainWindow的WPF应用程序

时间:2018-11-06 12:02:05

标签: c# wpf modal-dialog

我想知道在WPF应用程序中使用.ShowDialog()而不是Show()来显示模式主窗口是否有任何弊端。

这是手动显示主窗口的常用方法:

private void Application_Startup(object sender, StartupEventArgs e)
{
    // the usual way to show the mainwindow
    new MainWindow().Show();
}

这就是我想要做的:

private void Application_Startup(object sender, StartupEventArgs e)
{
    // what i want to do
    new MainWindow().ShowDialog();
}

我想从一个第三方应用程序加载项启动WPF应用程序,该加载项可以从外部.NET DLL调用静态方法。因此,我构建了一个DLL作为加载项,以在新的AppDomain中启动WPF应用程序。只要用户在第三方应用程序中不执行任何操作,此方法就可以正常工作,否则它将崩溃。 如果我将我的应用程序的主窗口显示为模式对话框,则可以防止这种情况,因为这会阻止第三方应用程序窗口。

1 个答案:

答案 0 :(得分:1)

嗯,潜在的缺点是ShowDialog()方法在对话框窗口关闭之前不会返回,这意味着您将无法在此期间与“上一个”窗口进行交互。

但是对于您而言,这似乎正是您想要的。因此,由于它可以在特定情况下按您希望的方式工作,因此我会坚持使用ShowDialog()