Estoy tratando de modificar App.cs y cargar los archivos WPF XAML desde el código, pero no funciona como debería.¿Cómo cambiar el StartupUri de la aplicación WPF?
Independientemente de lo que intento establecer como StartupUri, no se inicia, el programa se cierra después de esto.
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
LoginDialog dlg = new LoginDialog();
if (dlg.ShowDialog() != true)
return;
switch (dlg.ChoiceApp) {
case ChoiceApp.CustomerEntry:
StartupUri = new Uri("/MyApp;component/Forms/CustomerEntry.xaml",
UriKind.Relative);
break;
case ChoiceApp.VendorEntry:
StartupUri = new Uri("/MyApp;component/Forms/VendorEntry.xaml",
UriKind.Relative);
break;
}
}
}
Ahora incluso me hicieron rastrear y descubrió que LoginDialog está funcionando correctamente y vuelve valores correctamente, pero el establecimiento de "StartupUri" no funciona.
Comprobé en ensamblaje inverso que el método DoStartup de la aplicación se llama después de OnStartup, por lo que técnicamente mi StartupUri debe cargar, pero no lo hace, en App.xaml startup uri no está definido en absoluto.
Nota: error confirmado
Noté que ShowDialog establece Application.MainWindow y cuando termina el diálogo, se establece de nuevo a cero, y debido a esto StartupUri configuración no funciona después de llamar diálogo modal en OnStartup o Evento de inicio.
No hay ningún error o excepción sobre el uri no válido o algo por el estilo.
Este método funciona sin que se llame DialogBox en el evento de inicio o OnStartup, creo que llamar a showdialog en este método hace que algo así como su ventana principal se configure como ventana expirada y se apaga después de esto.
Hice exactamente lo que dijo, sin embargo, esto es una solución, pero desde el punto de vista del diseño de la aplicación, la configuración de StartupUri debería funcionar y se ve muy bien el código, que es fácil de documentar y explicar. Gracias por tu sugerencia. –