本来想用委托实现的。但是又觉得没有必要。
方法如下:
public MainWindow() { InitializeComponent(); this.Closing += MainWindow_Closing; } private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) { foreach (Window w in this.OwnedWindows) { if (w!=null) { w.Close(); } } MessageBox.Show("所有子窗口关闭完成。"); } private void Button_Click(object sender, RoutedEventArgs e) { for (int i = 0; i < 10; i++) { SubWindow s = new SubWindow("sub window"+i.ToString()); s.Owner = this; s.Show(); } }