WPF app.run не работает? - PullRequest
       1

WPF app.run не работает?

2 голосов
/ 03 декабря 2010

Я только начинаю изучать WPF, поэтому, пожалуйста, потерпите меня, если эта проблема настолько проста, но я не могу понять, что действительно происходит.сначала покажите окно входа в систему, затем после успешной аутентификации будет отображено главное окно.Я не использовал App.xaml по умолчанию, который автоматически создается Visual Studio, вместо этого я создал собственный класс приложения.Вход в систему работает отлично, но app.Run (win) не работает, он не показывает мое MainWindow, и приложение немедленно завершает работу.Есть что-то, чего я здесь не хватает?У меня есть приложение winform с почти таким же классом запуска, и оно прекрасно работает.Поэтому я не знаю, почему этот подход не работает в WPF.

public class Startup
{
    [STAThread()]
    static void Main()
    {
        Application app = new Application();
        WinLogin login = new WinLogin();
        bool showLogin = true;
        while (showLogin)
        {
            login.ShowDialog();
            if (login.DialogResult.HasValue && login.DialogResult == true)
            {
                MainWindow win = new MainWindow();
                app.Run(win);
                if (!win.LogOff)
                    showLogin = false;
            }
            else
                showLogin = false;
        }
    }
}

1 Ответ

1 голос
/ 03 декабря 2010

После того, как вы показали ваш диалог, попробуйте установить

app.MainWindow = win;

непосредственно перед вызовом Application.Run (). Я предполагаю, что ваш первый диалог был автоматически установлен как главное окно, таким образом, закрывая приложение после его закрытия

Кроме того, переместите создание MainWindow непосредственно после создания вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...