到底是绕不过这个问题:页面导航(WP8.1 runtime)

weixin_38051999 2016-09-18 02:59:19
有两个XAML页面,分别为A,B。A是MainPage页面。
在A的页面中注册后退键事件
public MainPage() { this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Required; HardwareButtons.BackPressed += HardwareButtons_BackPressed;//注册后退键事件 } private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) { if (Frame == null) { return; } if (Frame.CanGoBack) { Frame.GoBack(); e.Handled = true; } else { if (MainPage页面上的组件是否打开)//检测各个弹出项目是否弹出 { //打开就关闭 } else { APP_Exit++; if(APP_Exit==1) { APP_Exit_Time = new DispatcherTimer(); APP_Exit_Time.Interval = TimeSpan.FromSeconds(1); APP_Exit_Time.Start();Lid_Start.Begin(); APP_Exit_Time.Tick += APP_Exit_Time_Tick; e.Handled = true; } else { App.Current.Exit(); } } } }
一切都是运行的很好,但是我在B.xaml页面上建立一个显示栏,一个Button控制的,点击Button打开,第二次关闭或者在打开时按后退键关闭。如果展示栏打开时,按后退键这个时候。程序就直接返回到A页面了。
我在B页面上如同A页面也注册了个后退键事件
public B() { this.InitializeComponent(); HardwareButtons.BackPressed += HardwareButtons_BackPressed;} private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) { if (Voice_Nub != 0 && Canvas_Voice_Gird.Visibility == Visibility.Visible) { kaishi5.Begin();//关闭的动画 kaishi3.Begin();//关闭的动画 e.Handled = true; else{ ////Frame.GoBack();报错 Frame.Navigate(typeof(MainPage)); Frame.BackStack.Clear(); e.Handled = true; } }
依旧是不管用的,除非是把所有的返回的代码禁用了,后退键对B页面的展示栏的操作才是管用,但是后退键的后退页面效果也是没了..
真是糟透了..
我该怎么操作?  后退的效果亦在,B页面对展示栏的操作也是可以的?


...全文
12 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧