您好我刚刚发现我的应用程序在从墓碑中返回时崩溃了。我能够在我的页面的构造函数中找到问题:
RadPhoneApplicationFrame frame = App.Current.RootVisual as RadPhoneApplicationFrame;
frame.PageTransitionCompleted +=
new EventHandler<EventArgs>(frame_PageTransitionCompleted);
每次应用重新激活时,RootVisual都会将帧设置为空。我想知道这里是否存在投射问题,因为在我使用此代码之前,我的墓碑工作完美无缺,我能够在整个应用程序中自由导航。关于可能导致这种情况的任何想法?或者可以解决一下?
答案 0 :(得分:4)
您应该将此代码从页面构造函数移动到页面中的OnNavigatedTo
方法覆盖。原因是RootVisual
可能在RootFrame.Navigated
事件处理程序中设置,该事件处理程序是在构建页面之后生成的,而不是之前生成的(这取决于App.xaml.cs
中的实现)。
当然,因为OnNavigatedTo
方法可能会针对一个页面运行一次,所以应确保PageTransitionCompleted
事件处理程序未分配两次(只需在{{-=
之前使用+=
1}})。
另一种选择是将此代码移至App.xaml.cs
。这对我来说最有意义,因为PageTransitionCompleted
事件与整个应用程序相关,而不是单个页面。