Aplicación xaml asume la primera ventana instancia es la ventana principal (ShowDialog se ignora), necesito mostrar varias ventanas
-
11-10-2019 - |
Pregunta
Tengo el siguiente código en mi 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;
}
y el siguiente en la 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">
Cuando comento hacia fuera la línea que comprueba CompletedInstall () manager.ShowDialog () obras excelentes, y mis espectáculos de configuración de la ventana. Cuando CompletedInstall () que se llama la llamada a manager.ShowDialog () retornos de inmediato sin mostrar la ventana. He añadido la ventana principal en el supuesto de que en algún lugar a lo largo de la línea alguien decidió una aplicación sólo debe mostrar una ventana.
He encontrado una solución mediante el establecimiento de la ventana principal antes de llamar CompletedInstall
private void App_Start(object sender, StartupEventArgs e)
{
var manager = new WINServiceConfig();
MainWindow = manager;
if (CompletedInstall())
{
manager.ShowDialog();
}
pero esto me obliga a desarrollar WINServiceConfig (específicamente el constructor) en función de su uso, ya que no puede contar con los requisitos de ser completados. Esta es una mala forma. ¿Qué más puedo hacer para solucionar este problema?
ventanamaniquí? Eso no puede ser la mejor respuesta. ¿Verdad ??
Solución
Se debe establecer el ShutdownMode a OnExplicitShutdown (al menos mientras se muestra el cuadro de diálogo inicial).