我正在使用模板10制作主/细节应用程序。主/细节模板10示例使用CommandBar来完全控制显示后退按钮的时间,但我想在PageHeader或shell上显示后退按钮。问题是,因为没有后退堆栈,所以按钮拒绝显示。我该如何处理?显示返回按钮,即使没有页面返回堆栈
回答
重写OnNavigatedTo事件并将AppViewBackButtonVisibility设置为隐藏在代码隐藏文件中,以便为每个要启用标题栏后退按钮的页面显示。
这里看看: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的可见性,你可以强制项目的可见性可见性:
https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.appbar.aspx
所以我创建了一个哈克解决这个。基本上,我将一个虚拟值添加到堆栈中,以便后退按钮认为有一些东西可以返回。
var entry = new PageStackEntry(typeof(bool), null, null);
Frame.BackStack.Insert(0, entry);
然后我添加了一个BootStrapper.BackRequested
事件,这将HandledEventArgs.Handled
到true
所以Template10犯规居然弹出页面。这样我就可以完全控制背部堆叠和后部可视性。
我已经注册了BootStrapper.BackRequested的监听器,但是当页面按钮的后退按钮被按下时,BackRequested似乎不会发生......我在我的BackRequested处理方法中设置了一个断点,并且它没有被击中,它只是失败: '在Windows.UI.Xaml.Controls.Frame.GoBack() 在Template10.Services.NavigationService.FrameFacade.GoBack() 在Template10.Services.NavigationService.NavigationService.GoBack() 在Template10。 Behaviors.NavButtonBehavior.Element_Click(Object sender,RoutedEventArgs e)' –
我正在使用模板10的最新NuGet版本。这可能是在更新的GitHub代码中修复的并且尚未包含在NuGet中的东西?我偶然发现了这个:https://github.com/Windows-XAML/Template10/issues/454 –
不理会我以前的评论;我昨天更新到1.1.4发布,现在我无法点击PageHeader的后退按钮。嗯。 –
- 1. 堆栈没有返回空,即使它没有对象
- 2. Ajax页面刷新页面按钮没有返回点击
- 3. 去 - 返回堆栈
- 4. $ .getJSON返回按钮显示JSON返回数据而不是页面
- 5. 显示ProgressDialog后返回按钮按下
- 6. 刷新页面时如何不显示返回顶部按钮?
- 7. 返回按钮时返回按钮
- 8. Android片段返回堆栈
- 9. 返回按钮跳过PHP页面
- 10. 返回按钮不显示在CollapsingToolbarLayout
- 11. 返回不按“返回”按钮
- 12. 即使数据库显示数据,PyMongo也没有返回
- 13. C#MVC - 返回PartialView没有显示完整页面
- 14. 返回按钮没有正确响应
- 15. wget没有返回正确的页面
- 16. angularjs $ window.location.href返回没有css的页面
- 17. 使用按钮返回值
- 18. 返回页首页脚中的按钮
- 19. BadTokenException - 返回按钮
- 20. 返回按钮presentModalViewController
- 21. Android:onSaveInstanceState返回按钮
- 22. Android“返回”按钮
- 23. 返回没有得到显示的ImageView
- 24. 返回的UIBarButtonItem没有显示出来?
- 25. EKEvent.notes返回(null),即使EKEvent.hasNotes返回YES
- 26. UINavigation leftBarItem显示返回按钮和附加按钮
- 27. '返回'浏览器按钮返回白页
- 28. 输入类型按钮返回历史记录返回页首
- 29. Zend_Db_Adapter_Abstract :: fetchOne在失败时返回什么(即没有行返回)?
- 30. 返回变量在PHP不工作(即没有返回值!)
我仍然无法使PageHeader的后退按钮显示。这里是当应用程序移动到细节视图时运行的代码,我想在PageHeader中显示后退按钮:SystemNavigationManager.GetForCurrentView()。AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; Template10.Common.BootStrapper.Current.ShowShellBackButton = false; Template10.Common.BootStrapper.Current.UpdateShellBackButton(); Template10.Common.BootStrapper.Current.NavigationService.Refresh();' –
我认为你的答案指的是标准UWP而不是Template10 API。我也在寻找解决方案。 –