Я думаю, что это ошибка в структуре WPF, не вдаваясь в глубины моей программы, и поэтому я делаю то, что делаю, я написал простое тестовое приложение, чтобы доказать свою теорию.
Может ли эта проблема быть подтверждена? Каковы возможные обходные пути для серии диалогов, которые должны быть выполнены до помещения приложения в цикл выполнения?
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;
namespace ShowDialogWindow
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
Window testWindow = new Window();
testWindow.ShowDialog();
testWindow.Close();
// THE CODE BELOW WILL NOT SHOW THE NEXT WINDOW
Window testWindow2 = new Window();
testWindow2.ShowDialog();
testWindow2.Close();
}
}
}
Обновление:
Конечно, я могу изменить свой дизайн, чтобы приспособиться к этому поведению. Однако то, что я пытался сделать, было действительно просто.
Я получил MyApplication
от Application
. На Main()
я запускаю серию проверок запуска, например, информацию о лицензии, заставку, проверки подключения и конфигурации и т. Д. Когда я все выясняю, я звоню MyApplicatiom.Run(MyMainForm)
.
Этот дизайн основан на обычном приложении Windows, которое работает без проблем.
Большое спасибо за вашу помощь, и я буду помнить, что вы не можете позвонить ShowDialog()
до application.Run()
, поскольку это просто инициализирует завершение работы. Однако я бы подумал, что последовательность выключения должна начинаться только после App.Run()
инструкции.
Пожалуйста, поправьте меня, если я неправильно понимаю.