Я работаю над игрой Silverlight / XNA. Имея такую структуру:
- Мой класс GamePlay унаследован от InGamePage.
- Где InGamePage унаследован от PhoneApplicationPage.
- InGamePage имеет метод OnLayoutUpdated для визуализации элементов управления SL (с использованием UIElementRenderer).
Это соответствует образцу кода SL / XNA.
Все работает нормально, пока я не решил создать текстовый блок в gamepage.xaml. Я хочу, чтобы этот текстовый блок отображал некоторые статические игровые переменные (например, расстояние, пройденное героем).
Теперь где мне написать эту строку:
debugTextBlock.Text = GameData.data.distanceCovered;
так что текстовый блок показывает текущие значения. (Я попытался подключить LayoutUpdate, но он выбросил Application_UnhandledException с сообщением «Обнаружен цикл макета. Макет не может быть завершен».)
Любая подсказка / ссылка приветствуется.
OnLayoutUpdated
, я мог бы понять, что вы пытаетесь что-то изменить во время рендеринга (что может изменить позиции множества других вещей) - вы уже заметили, что если вы измените место обновления текста, он будет работать, так что это похоже на ваше решение. - person Rowland Shaw   schedule 04.07.2012