首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Win 8.1 Metro Hub导航

Win 8.1 Metro Hub导航
EN

Stack Overflow用户
提问于 2013-12-30 22:45:14
回答 9查看 1.8K关注 0票数 2

在一个带有subItems页面的集线器视图应用程序中,我的问题是,当我导航到一个子项详细信息页面,然后使用导航section01命令时,视图总是返回到页面中心页面。

如何将MainHub页面返回到最初转到该子页面的原始调用部分?

我的研究毫无结果。我不认为抓拍是我的答案,但是,嘿,任何建议都是非常感谢的。

如果这是一个非常简单的问题我很抱歉但是..。

谢谢。

EN

回答 9

Stack Overflow用户

发布于 2014-01-01 20:12:36

好的。谢谢你的回答。在看了这个问题三天后,我找到了一个解决方案,但还不是一个很好的答案。

this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;

通过启用导航缓存,页面将返回到它的发送者位置。但是,我仍然希望返回到Hub根页面的特定部分。如果任何人仍然有关于如何实现这一点的信息,我将不胜感激。

节日问候。

票数 2
EN

Stack Overflow用户

发布于 2014-01-03 22:17:33

这里的新手也发现了MyHub.ScrollToSection(MyHub.Sections);

这使您可以直接导航到某个部分,从而将其带到当前视图中。

票数 2
EN

Stack Overflow用户

发布于 2014-06-11 21:46:56

我在试着为同样的问题找到答案。这是我到目前为止所发现的。我欢迎任何更好的解决方案。

选项1

为页面启用缓存。请注意,这必须在页面构造函数或XAML中设置。这将增加内存使用量,但在您导航回缓存页面时将提高应用程序的性能。

代码语言:javascript
复制
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类。

代码语言:javascript
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20841776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档