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