Aplicación xaml asume la primera ventana instancia es la ventana principal (ShowDialog se ignora), necesito mostrar varias ventanas

StackOverflow https://stackoverflow.com/questions/4199932

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?

ventana

maniquí? Eso no puede ser la mejor respuesta. ¿Verdad ??

¿Fue útil?

Solución

Se debe establecer el ShutdownMode a OnExplicitShutdown (al menos mientras se muestra el cuadro de diálogo inicial).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top