1

我正在使用模板 10 制作主/详细信息应用程序。主/详细信息模板 10 示例使用命令栏来完全控制何时显示后退按钮,但我想在 PageHeader 或上显示后退按钮贝壳。问题是,由于没有返回堆栈,因此按钮拒绝显示。我该如何处理?

4

2 回答 2

2

覆盖 OnNavigatedTo 事件并在代码隐藏文件中为要启用标题栏后退按钮的每个页面将 AppViewBackButtonVisibility 设置为 Visible。

看看这里:http ://grogansoft.com/blog/?p=1116

重要的部分是"AppViewBackButtonVisibility"

if (rootFrame.CanGoBack)
{
    // Show UI in title bar if opted-in and in-app backstack is not empty.
    SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = 
        AppViewBackButtonVisibility.Visible;
}

我还建议您查看 AppBar 属性。特别是获取或设置 UIElement 可见性的 Visibility ,您可以强制项目的可见性:

https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.appbar.aspx

于 2016-02-14T07:46:36.387 回答
0

因此,我为此创建了一个 hacky 解决方案。基本上我在堆栈上添加了一个虚拟值,以便后退按钮认为有一些东西可以返回。

var entry = new PageStackEntry(typeof(bool), null, null);
Frame.BackStack.Insert(0, entry);

然后我添加了一个BootStrapper.BackRequested事件,该事件设置HandledEventArgs.Handledtrue因此 Template10 实际上不会弹出页面。这样我就可以完全控制后台堆栈和后台可见性。

于 2016-02-20T20:56:59.660 回答