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

时间:2014-04-17 08:05:00

标签: c# windows-phone-8

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

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

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

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

2 个答案:

答案 0 :(得分:1)

您始终可以通过调用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

答案 1 :(得分:0)

试试这段代码

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

来源 enter link description here