RootVisual является нулевым при возвращении из Tombstoning? - PullRequest
2 голосов
/ 11 января 2012

Привет, я только что узнал, что мое приложение зависало при возврате из захоронения.Я смог нацелиться на проблему здесь, внутри конструктора моей страницы:

RadPhoneApplicationFrame frame = App.Current.RootVisual as RadPhoneApplicationFrame;
frame.PageTransitionCompleted += 
                         new EventHandler<EventArgs>(frame_PageTransitionCompleted);

Каждый раз, когда приложение повторно активируется, RootVisual устанавливает фрейм в ноль.Мне интересно, есть ли здесь проблема с кастингом, потому что до того, как я использовал этот код, мое надгробие работало отлично, и я мог свободно перемещаться по приложению.Любые идеи о том, что может быть причиной этого?Или может быть работа вокруг?

1 Ответ

4 голосов
/ 11 января 2012

Вы должны переместить этот код из конструктора страницы в OnNavigatedTo метод переопределения на вашей странице.Причина в том, что RootVisual, вероятно, установлен в RootFrame.Navigated обработчике событий, который генерируется после создания страницы, а не до этого (это зависит от реализации в App.xaml.cs).

Конечно, потому что метод OnNavigatedToможет быть запущено более одного раза для страницы, вы должны убедиться, что обработчик событий PageTransitionCompleted не назначен два раза (просто используйте -= перед +=).

Другой вариант - переместить этот коддо App.xaml.cs.Для меня это имеет смысл больше всего, потому что это событие PageTransitionCompleted относится ко всему приложению, а не к одной странице.

...