title: WPF splash screen UI not updating
body: <p>I have a splash screen on my WPF application. The splash window is defined in my <code>App</code> class as a field, and in the <code>Startup</code> event, I perform various initialization features that can take some time, show prompts/windows, etc. My startup event looks something like this:</p>
  
  <pre><code>Startup += (_,__) =&gt;
  {
      mySplashScreen.UpdateMessage("Initializing Component A...");
  
      InitializeComponentA();
  
      mySplashScreen.UpdateMessage("Initializing Component B...");
  
      InitializeComponentB();
  
      mySplashScreen.UpdateMessage("Initializing Component C...");
  
      InitializeComponentC();
  
      mySplashScreen.UpdateMessage("Opening application...");
  };
  </code></pre>
  
  <p>For the splash screen update method, I have tried the following things:</p>
  
  <ul>
  <li>Using a ViewModel class that implements <code>INotifyPropertyChanged</code>, binding to it, and updating the view model's <code>Message</code> property.</li>
  <li>Creating a <code>DependencyProperty</code> called <code>Message</code> in the code-behind, and binding/updating that.</li>
  <li>Setting the property directly (e.g. <code>myTextBlock.Text = splashMessage;</code>)</li>
  <li>Putting the splash screen in a separate thread and setting the splash message via <code>Dispatcher.Invoke()</code> (using <code>DispatcherPriority.Send</code> to ensure the UI is updated immediately).</li>
  </ul>
  
  <p>My problem is that none of the splash screen messages are updating/displaying on the window. The <strong>only</strong> condition where the splash UI updates is when one of the <code>InitializeComponentX()</code> methods shows a dialog. In that case, the splash UI updates. For all of the options above, I have even tried synchronously and asynchronously waiting (via <code>Thread.Sleep()</code>) for a few seconds to see if the UI will update, but it never does.</p>
  
  <p>Why is my splash UI only updating if I show another dialog/window?</p>