WPF Prism で カスタムスプラッシュウィンドウ(スクリーン) を表示する
画像のみのスプラッシュウィンドウを表示する場合は別記事(画像のみだけど表示中にいろいろ処理したい) 【URLを張ると、循環参照ってGoogle先生が起こって検索に引っかからなくなるのでやめました】 上記でスプラッシュウィンドウを表示したアプリケーションを作っていたのだが… 「起動時間が長いからプログレスバーを出したい!」とかいう訳分からん修正依頼が来た… (上記記事にしてますが、シリアルケーブル通信をしているのでCOM数が多ければ遅くなるのは当たり前…) って事で、試行錯誤をした結果たどり着いた内容を記載します。 前提条件: ・Prism を利用していること。 ・Reactive を利用していること。(必須ではない) ・IDialogService を利用したダイアログ表示が可能であること。 ・スプラッシュウィンドウ用のUserControl がスタートアッププロジェクトに実装済みであること。 App.xaml.cs: public partial class App : PrismApplication { /// <summary> /// メイン画面の起動処理 /// </summary> protected override void OnInitialized() { if (MainWindow != null) { // ダイアログサービスを取得して、カスタムスプラッシュウィンドウを表示する var dialogService = this.Container.Resolve<IDialogService>(); var ret = ButtonResult.Cancel; dialogService.ShowDialog(nameof(CustomizeSplashScreen), null, r => { ret = r.Result; resultParam = r.Parameters; }, nameof(CustomizeSplashScreen)); // 問題無ければOK/...