如何在不在内存中创建新副本的情况下重新加载Windows手机应用程序页面?

在我的Windows手机应用程序中,我正在尝试使用以下代码重新加载应用程序页面:

NavigationService.Navigate(new Uri(string.Format("/Page1.xaml?random={0}", Guid.NewGuid()), UriKind.Relative)); 

我已将上面的代码写入按钮单击事件。 Page1正在重新加载,但每次单击按钮时,应用程序内存都会不断增加,并且某些时候应用程序崩溃了。

有没有其他方法可以重新加载或刷新页面,而无需在应用程序内存中创建页面的新副本。

您始终可以通过调用Page.Refresh();从代码刷新页面内容。 或类似的方法,但这可能无法刷新所有内容。

如果您决定执行新导航(并确保所有内容都达到页面的初始状态),则可以通过调用以下方法从堆栈中删除以前导航的页面:

 protected override void OnNavigatedTo(NavigationEventArgs e) { if (NavigationContext.QueryString.ContainsKey("logedin")) { NavigationService.RemoveBackEntry(); } } 

看一下NavigationService类,特别是AddBackEntry和RemoveBackEntry方法:

http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationservice(v=vs.110).aspx

试试这段代码

 var Frame = Window.Current.Content as Frame; Frame.Navigate(Frame.Content.GetType()); Frame.GoBack(); 

来源在此输入链接描述