我理解 Windows Phone 7 导航的方式是,每次您想要转到另一个页面时,您都会使用以下内容:
this.NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));
在页面之间来回切换(例如 4 个)之后,这不会随着时间的推移创建大量对象;因为你每次都在创造一个新的?这会变成“内存不足”的问题吗?我只是想确保在进一步进行任何开发之前了解其工作原理的结构。
我理解 Windows Phone 7 导航的方式是,每次您想要转到另一个页面时,您都会使用以下内容:
this.NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));
在页面之间来回切换(例如 4 个)之后,这不会随着时间的推移创建大量对象;因为你每次都在创造一个新的?这会变成“内存不足”的问题吗?我只是想确保在进一步进行任何开发之前了解其工作原理的结构。
您NavigationService.Navigate
在向前导航时使用,但NavigationService.GoBack
在返回时使用。因此,backstack 不应该无限增长。
此外,如果您需要在前向循环(MainPage -> Page1 -> Page2 -> MainPage)之后再次到达主页,最好清除后退堆栈。这样,用户将能够通过单击后退按钮退出应用程序,而不是再次经历所有循环。要从后台堆栈中删除页面,请使用NavigationService.RemoveBackEntry()
:
while (this.NavigationService.BackStack.Any())
{
this.NavigationService.RemoveBackEntry();
}