【发布时间】:2017-02-16 21:44:57
【问题描述】:
我尝试在运行 wpf 应用程序之前打开对话窗口:
public class Program
{
[STAThread]
public static void Main(string[] args)
{
var app = new App();
var win = new MainWindow();
if (win.ShowDialog().GetValueOrDefault())
{
app.Run();
}
}
}
class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var win = new Window1();
win.Show();
}
}
为什么 win.ShowDialog() 运行应用程序(app.OnStartup 被执行)? 但是,win.Show() 不运行应用程序
[STAThread]
public static void Main(string[] args)
{
var app = new App();
var win = new MainWindow();
win.Show();
app.Run();
}
为什么会出现这种行为???
谢谢
【问题讨论】:
-
显示您用于
Show的代码 - 您不能在if中使用它,因为它不返回布尔值。 -
您是故意对 wpf 的工作原理感到好奇,还是只是想解决在显示主窗口之前显示对话框的问题?
-
@Default 首先我想解决这个问题,如果可能的话。但我也想了解为什么会这样。我的问题不是 WPF showing dialog before main window 的重复