Application.xamlを編集し、StartUpUriを削除します。代わりに、StartUpイベントハンドラーを設定します。Application.xaml.csで、起動イベントハンドラーを編集してスプラッシュ画面を表示し、リソースを読み込み、すべてを作成してから、メインウィンドウを作成して表示します。
<Application
...
StartUp="OnStartUp"
/>
と:
private void OnStartUp(Object sender, StartupEventArgs e)
{
var settings = LoadSettingsFrom... // Call your implementation of load user settings
// Example only, in real app do this if's section on a different thread
if (settings.doShowSplashScreen)
{
var splashScreen = new SplashScreen();
splashScreen.Show();
}
// Load and create stuff (resources, databases, main classes, ...)
var mainWindow = new mainWindow();
mainWindow.ApplySettings(settings); // Call your implementation of apply settings
if (doShowSplashScreen)
{
// send close signal to splash screen's thread
}
mainWindow.Show(); // Show the main window
}