WPFのスプラッシュスクリーンの表示時間を簡単に設定する方法

WPFアプリケーションではスプラッシュスクリーン用の画像を追加して、画像のプロパティを「SplashScreen」に設定することで、簡単に表示することができるようになっています。
ですが、表示タイミングが調整できないためすぐに表示が終わってしまいます。

以下のように表示までワンクッション置くことで、実際の表示までの前処理や表示秒数指定などが可能になります。

まず、アプリケーションのプロパティで「StartUP Object」を(Not Set)にしておきます。
StartupUri=”MainWindow.xaml” を Startup=”App_Startup” に変更します。

画面側(C#、VB.NET共通)

<Application x:Class="Application"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     Startup="App_Startup">
    <Application.Resources>
    </Application.Resources>
</Application>

次に、App.xaml.cs(またはApplication.xaml.vb)にApp_Startupの宣言を追加して、スプラッシュスクリーンを待機させてから画面を呼び出すように変更します。

C#での対応方法(App.xaml.cs)

   public partial class App : System.Windows.Application
    {
        void App_Startup(object sender, StartupEventArgs e)
        {
            //2秒スプラッシュスクリーンを待機させる
            System.Threading.Thread.Sleep(2000);

            //StartUP Objectは指定せずにここで初期化する
            WpfApplication1 mainWindow = new MainWindow(); //←起動したい画面クラス名
            mainWindow.Show();
        }
    }

VB.NETでの対応方法(Application.xaml.vb)

    Class Application
        Private Sub App_Startup(sender As Object, e As StartupEventArgs)
            '2秒スプラッシュスクリーンを待機させる
            System.Threading.Thread.Sleep(2000)

            'StartUP Objectは指定せずにここで初期化する
            Dim mainWindow As New MainWindow() '←起動したい画面クラス名
            mainWindow.Show()
        End Sub
    End Class
この記事をシェアする
Tweet about this on Twitter
Twitter
Share on Facebook
Facebook
0

Comments

Comments