在一个带有subItems页面的集线器视图应用程序中,我的问题是,当我导航到一个子项详细信息页面,然后使用导航section01命令时,视图总是返回到页面中心页面。
如何将MainHub页面返回到最初转到该子页面的原始调用部分?
我的研究毫无结果。我不认为抓拍是我的答案,但是,嘿,任何建议都是非常感谢的。
如果这是一个非常简单的问题我很抱歉但是..。
谢谢。
发布于 2014-01-01 20:12:36
好的。谢谢你的回答。在看了这个问题三天后,我找到了一个解决方案,但还不是一个很好的答案。
this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;
通过启用导航缓存,页面将返回到它的发送者位置。但是,我仍然希望返回到Hub根页面的特定部分。如果任何人仍然有关于如何实现这一点的信息,我将不胜感激。
节日问候。
发布于 2014-01-03 22:17:33
这里的新手也发现了MyHub.ScrollToSection(MyHub.Sections);
这使您可以直接导航到某个部分,从而将其带到当前视图中。
发布于 2014-06-11 21:46:56
我在试着为同样的问题找到答案。这是我到目前为止所发现的。我欢迎任何更好的解决方案。
选项1
为页面启用缓存。请注意,这必须在页面构造函数或XAML中设置。这将增加内存使用量,但在您导航回缓存页面时将提高应用程序的性能。
this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;更多信息请点击此处:http://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.ui.xaml.controls.page.navigationcachemode.aspx
选项2
手动保存页面导航之间的控件状态。下面的示例使用的是默认情况下添加到新Windows Store项目中的NavigationHelper类。
private void OnNavigationHelperSaveState(obj sender, SaveStateEventArgs e)
{
e.PageState["SelectedSection"] = this.MainHub.SectionsInView;
}
private void OnNavigationHelperLoadState(obj sender, LoadStateEventArgs e)
{
if (e.PageState != null)
{
var sections = e.PageState["SelectedSection"] as IList<HubSection>;
if (sections != null && sections.Any())
{
this.MainHub.ScrollToSection(sections[0]);
}
}
}更多信息请点击此处:http://msdn.microsoft.com/en-gb/library/windows/apps/hh986968.aspx
https://stackoverflow.com/questions/20841776
复制相似问题