ここでは、WPFアプリケーションの起動時に発生したい基本イベントを示します。これは、Wordがマシン上でどのように起動するかと非常によく似ています。WPFアプリケーションの起動時に待機カーソルを表示するにはどうすればよいですか?
- ビジーカーソルを表示します。
- 基本的な初期化を実行します。これには数秒かかり、スプラッシュ画面が表示される前に完了する必要があります。
- スプラッシュ画面を表示します。このスプラッシュ画面には詳細な初期化の進捗状況が表示され、しばらく時間がかかります(データベースから情報をキャッシュする)。
- デフォルトのカーソルを表示します。スプラッシュ画面に進行状況が表示されているので、ビジーカーソルを表示する必要はありません。
- スプラッシュ画面の進行が完了したら、メインウィンドウを表示します。
- スプラッシュ画面を閉じます。
スプラッシュ画面が表示される前にビジーカーソルが表示されている場合を除き、すべてが正常に動作します。ショートカットを使ってアプリケーションを実行すると、待機カーソルが点滅しますが、すぐにデフォルトに戻ります。 Cursorを設定するにはさまざまな方法を試しましたが、機能はありませんが、問題は私がコントロール/ウィンドウにないことだと思います.App.xaml.c内からやっています。そして、私が設定しているプロパティはWindowsフォームのプロパティのようです。 App.xaml.cのコードから抜粋したものです
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();
}
追加したことと、それはまだ前と同じように動作します。 OverrideCursorを最初に設定した後にnullにリセットしないと、ウィンドウにカーソルを合わせると待機カーソルが表示されます。しかし、アプリが最初に起動しているときは表示されません。 – bsh152s
ええと、私はしばらくそれをしてきましたが、実際のウィンドウの外にカーソルを変更することは不可能ではないにしても非常に難しいようです(このコードでも、マウスが離れると待機カーソルが消えます窓)。申し訳ありませんが、私はもっと助けになることはできませんでした。 –
これは良いことです。 this.Cursor値を設定するだけで、ウィンドウの値が変更されます。コントロール上にカーソルを置くと、待機カーソルではなくデフォルトのカーソルが表示されます。 Mouse.OverrideCursorは、ウィンドウとその中のすべての待機カーソルを設定しているようです。 –