title: Block all windows with MessageBox.Show()
body: <p>I'm currently working on a WPF app which has multiple windows. From the "main" window, you should be able to close the entire app. Before the app will be closed, the client wants it to show a dialog box which basically asks "are you sure you want to close the app" and blocks every other window until the user answers.</p>
  
  <p>I'm currently using MessageBox.Show() to create this dialog box, but for some reason it only blocks the main window. </p>
  
  <p>Here's the simplest example of what I'm talking about; if you create a WPF window with two buttons:</p>
  
  <pre><code>private void openChildWindowButton_Click(object sender, RoutedEventArgs e)
  {
    var window = new ChildWindow();
    window.Show();
  }
  
  private void openDialogButton_Click(object sender, RoutedEventArgs e)
  {
    MessageBox.Show(this, "This should freeze all other windows");
  } 
  </code></pre>
  
  <p>Opening a dialog will completely freeze the first window. If you click on it or attempt any sort of interaction, the OS makes a "ding!" sound and flashes the border on the message  box. But all of the other windows you've opened can be clicked, moved, resized, etc., and that's what I want to prevent.</p>