Вот основные события, которые я хочу выполнить, когда мое приложение WPF запустится. Это очень похоже на то, как Word запускается на моей машине.
- Отобразить курсор занятости.
- Выполните базовую инициализацию. Это займет пару секунд, и это необходимо сделать, прежде чем отобразится экран заставки.
- Отобразить экран заставки. Этот всплеск отображает прогресс в более глубокую инициализацию и может занять некоторое время (кэширует информацию из базы данных).
- Отобразить курсор по умолчанию. Так как всплывающий экран теперь показывает прогресс, нет необходимости отображать курсор занятой.
- Как только заставка заставки будет завершена, отобразите главное окно.
- Закрыть экран заставки.
Все работает отлично, за исключением отображения загруженного курсора перед отображением заставки. Когда я запускаю приложение через ярлык, курсор ожидания мигает, но вскоре возвращается к умолчанию. Я пробовал разные способы установить Cursor, но никто не работает, но я думаю, что проблема в том, что я не в элементе управления/окнах - я делаю это из App.xaml.cs. И свойства, которые я устанавливаю, кажутся свойствами Windows Forms. Вот отрывок из моего кода в App.xaml.cs.
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();
}