Изменить основной в проекте WPF - PullRequest
1 голос
/ 22 декабря 2009

Меня всегда раздражало, как C # хочет сделать запуск для вас. Поэтому сейчас я пытаюсь сделать свой собственный основной метод. Это не работает:

Я предоставил этот основной метод:

[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public static void Main()
{
    Model model= new Model();
    Controller controller = new Controller(model);
    MainWindow window = new MainWindow(controller, model);
}

Этот метод запущен, но я не вижу ничего визуального. Я думаю, что что-то упустил из следующего нормального основного кода:

Application.App app = new Application.App();
app.InitializeComponent();
app.Run();

Я попытался переопределить OnStartUp с помощью того же кода, но это вызывает исключение. Если у вас есть другие решения, я готов услышать. Я просто не понимаю, почему сначала нужно создать мое главное окно.

Ответы [ 2 ]

5 голосов
/ 22 декабря 2009

Вы правы: вам нужно создать экземпляр приложения и вызвать Run на нем. (Вы должны сделать это в Main.) Чтобы оно показывало ваше окно при запуске, есть три варианта:

  • Использовать перегрузку Run (Window), например MainWindow w = ...; new MyApp().Run(w);
  • Установите StartupUri, например, myApp.StartupUri = new Uri(...); myApp.Run();
  • Выполните событие Show in the Startup или OnStartup, например: myApp.Startup += (...) => new MainWindow().Show();

Примеры кода ручного запуска показаны в MSDN под записями Application.Run () и Application.Run (Окно) - они должны начать! Перегрузка Run () также обсуждает , почему Application.Run необходим и что он делает, например. запуск диспетчерской петли.

0 голосов
/ 22 декабря 2009

Меня всегда раздражало, как C # хочет сделать запуск для вас. Поэтому сейчас я пытаюсь сделать свой собственный основной метод. Это не работает:

C # не делает запуск за вас. Он вставляет код, который делает это за вас. Вы всегда можете изменить код и все, что захотите. Первое, что я бы сделал на вашем месте - щелкните правой кнопкой мыши файл проекта и выберите «Свойства». Под приложением (верхняя вкладка) - см. Объект запуска.

Вы можете выбрать форму

Также - Вы пропускаете строку, если хотите, чтобы появилось окно:

window.Show();
...