Извините, если вопрос плохо сформулирован, новый для C#. Я пытаюсь сделать текстовое приключение. Я уже написал всю основную логику и решил попробовать использовать WPF для базовой графики. Поэтому я инициализирую окно всеми необходимыми элементами управления, а затем прохожу через мой основной цикл до тех пор, пока вы не активируете выход. Сначала я попытался поставить цикл сразу после инициализации окна.В проекте WPF, как мне инициализировать мое окно и элементы управления, а затем перейти в основной цикл?
public MainWindow()
{
InitializeComponent();
Game.Logic();
}
Это не очень хорошо работает, так как Window прекратил инициализацию вообще. Итак, я немного искал язык и пытался использовать загруженное событие. Как только я это сделал, окно появляется, когда я запускаю код, но ни один из элементов управления не появляется, и окно заморожено. Та же проблема сохранялась, когда я пытался использовать Loaded Event для самих элементов управления. Хотя в моей игровой петле может быть какая-то ошибка, я думаю, что Window должен по крайней мере иметь возможность инициализировать все свои элементы управления, если я правильно перехожу в Loop. Правильно ли было бы войти в файл приложения и использовать там загруженное событие? Или я просто совершенно не в порядке?
Спасибо, имеет смысл. Поэтому мне нужно запустить другой поток где-то, содержащий логический цикл. Это звучит в Google. Я знаю, что должен использовать шаблон MVVM ... Я его реализую, когда у меня все получится. – PPFY
Вы также можете попытаться запустить свою логику цикла в обработчике события Tick DispatcherTimer, который уже работает в потоке пользовательского интерфейса. – Clemens
@Clemens true, но если он проводит интенсивную обработку, поток пользовательского интерфейса будет заблокирован. Я бы, вероятно, избегал этого маршрута. – BradleyDotNET