如何在不在内存中创建新副本的情况下重新加载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();
来源在此输入链接描述