我想知道在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应用程序。只要用户在第三方应用程序中不执行任何操作,此方法就可以正常工作,否则它将崩溃。 如果我将我的应用程序的主窗口显示为模式对话框,则可以防止这种情况,因为这会阻止第三方应用程序窗口。
答案 0 :(得分:1)
嗯,潜在的缺点是ShowDialog()
方法在对话框窗口关闭之前不会返回,这意味着您将无法在此期间与“上一个”窗口进行交互。
但是对于您而言,这似乎正是您想要的。因此,由于它可以在特定情况下按您希望的方式工作,因此我会坚持使用ShowDialog()
。