App XAML assume la prima finestra istanziato è la finestra principale (ShowDialog viene ignorato), ho bisogno di mostrare più finestre
-
11-10-2019 - |
Domanda
Ho il seguente codice nel mio App.xaml.cs
private void App_Start(object sender, StartupEventArgs e)
{
if ( CompletedInstall())
{
//using show to allow for pacifier if loading is slow
var manager = new WINServiceConfig();
MainWindow = manager;
manager.ShowDialog();
}
}
private bool CompletedInstall()
{
var window = new Initialize();
window.ShowDialog();
return window.DoLaunchManager;
}
e di seguito nel App.xaml
<Application x:Class="Manager.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="App_Start">
Quando ho commentare la linea che i controlli CompletedInstall () manager.ShowDialog () funziona bene, ed i miei spettacoli finestra di configurazione. Quando CompletedInstall () è chiamata la chiamata a manager.ShowDialog () ritorna subito senza visualizzare la finestra. Ho aggiunto la finestra principale sul presupposto che da qualche parte lungo la linea di qualcuno ha deciso un app dovrebbe mostrare una sola finestra.
Ho trovato una soluzione impostando la finestra principale prima di chiamare CompletedInstall
private void App_Start(object sender, StartupEventArgs e)
{
var manager = new WINServiceConfig();
MainWindow = manager;
if (CompletedInstall())
{
manager.ShowDialog();
}
, ma questo mi costringe a sviluppare WINServiceConfig (in particolare il costruttore) in base al suo utilizzo, perché non può contare sui presupposti in fase di completamento. Questa è cattiva forma. Che altro posso fare per risolvere questo problema?
finestraDummy? Questo non può essere la risposta migliore. Can è ??
Soluzione
Si dovrebbe impostare lo ShutdownMode a OnExplicitShutdown (almeno mentre mostra la finestra di dialogo iniziale).