Я пытаюсь изменить App.cs и загружать файлы XAML WPF из кода позади, но он не работает так, как должен.
Независимо от того, что я пытаюсь установить как StartupUri, он не запускается, программа завершает работу после этого.
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;
}
}
}
Теперь я даже проследил и обнаружил, что LoginDialog работает правильно и правильно возвращает значения, но установка "StartupUri" не работает.
Я проверил в обратной сборке, что метод DoStartup приложения вызывается после OnStartup, поэтому технически мой StartupUri должен загружаться, но он не работает, в App.xaml startup uri совсем не определен.
Примечание: ошибка подтверждена
Я заметил, что ShowDialog устанавливает Application.MainWindow и когда диалог заканчивается, он возвращает значение null, и из-за этого параметра StartupUri не работает после вызова Modal Dialog в событии OnStartup или Startup.
Нет ошибок или исключений в отношении недействительного uri или что-то в этом роде.
Этот метод работает без вызова DialogBox в событии Startup или OnStartup, я думаю, что вызов showdialog для этого метода приводит к тому, что его основное окно устанавливается в окно с истекшим сроком действия и после этого отключается.