title: How do I display wait cursor during a WPF application's startup?
body: <p>Here are the basic events I want to happen when my WPF application starts.  This is very similar to how Word starts on my machine.</p>
  
  <ol>
  <li>Display busy cursor.</li>
  <li>Perform basic initialization.  This takes a couple of seconds and needs to be done before splash screen is displayed.</li>
  <li>Display splash screen.  This splash screen displays progress into more in-depth initialization and can take awhile (caches information from database).</li>
  <li>Display default cursor.  Since splash screen is displaying progress now, there's no need to display a busy cursor.</li>
  <li>Once splash screen progress is complete, display main window.</li>
  <li>Close splash screen.</li>
  </ol>
  
  <p>Everything works fine except for the displaying of the busy cursor prior to the splash screen being displayed.  When I execute the application through a shortcut, the wait cursor flashes, but soon goes back to the default.  I've tried different ways to set the Cursor but none work, but I think the problem is that I'm not in a control/window--I'm doing it from within App.xaml.cs.  And, the properties I'm setting seem to be Windows Forms properties.  Here is an excerpt from my code in App.xaml.cs.  </p>
  
  <pre><code>protected override void OnStartup(StartupEventArgs e)
  {
    base.OnStartup(e);
  
    System.Windows.Forms.Application.UseWaitCursor = true;
    //System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
    //System.Windows.Forms.Application.DoEvents();
  
    Initialize();
  
    SplashWindow splash = new SplashWindow();
    splash.Show();
  
    System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
  
    // Right now I'm showing main window right after splash screen but I will eventually wait until splash screen closes.
    MainWindow main = new MainWindow();
    main.Show();
  }
  </code></pre>