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

本文关键字:新加载 加载 Windows 应用程序 phone 情况下 副本 内存 创建 新副本 | 更新日期: 2023-09-27 17:58:40

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

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

我已经把上面的代码写到了按钮点击事件中。Page1重新加载很好,但每次我点击按钮时,应用程序的内存都会不断增加,有时应用程序会崩溃。

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

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

您可以通过调用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();

来源在此处输入链接描述