为什么Window.Close事件会传播?

Ste*_*eve 5 c# wpf

我遇到了一个奇怪的情况,Close子窗口的事件传播到父窗口并导致它关闭.

我做了一个最小的例子,如下所示

因为TestWindowVS只生成了默认的WPF窗口

并在App.xaml.cs我覆盖OnStartup事件并将其用作自定义Main函数

protected override void OnStartup(StartupEventArgs e)
{
    base.OnStartup(e);

    TestWindow t = new TestWindow();
    t.ShowDialog();
}
Run Code Online (Sandbox Code Playgroud)

现在,如果单击X按钮关闭TestWindow,应用程序将关闭而不是显示MainWindow.如果你评论出来,t.ShowDialog那么MainWindow显示就好了.接下来,如果你听到这个Closing事件,MainWindow你会发现它会在TestWindow关闭后触发,这对我来说似乎不对