首页 > 代码库 > wp8.1 app退出操作提示
wp8.1 app退出操作提示
微软的wp8.1 sdk相比之前wp8 sdk以及相关dll类库,微软又重新编译过,相关系统类库也经过精简,删改了部分传统dll库中的方法对象,很多常用方法对象被写进Windows.UI为前缀的命名空间中,可以看出微软wp8.1经过了一定的优化。
此处功能设计描述为,触摸一次返回键,提示是否退出app,再点一次即关闭app。
1 <Grid Background="#F5F5F5" DataContext="{Binding Path=MainPageViewModel, Source={StaticResource Locator}}">2 <Grid Canvas.ZIndex="10000" Visibility="{Binding ExitNotificationVisible}" Height="30" Background="Red" VerticalAlignment="Top">3 <TextBlock FontSize="14" Text="提示: 再按一次返回键退出支付宝" VerticalAlignment="Center" Margin="10 0 0 0" />4 </Grid>5 <ContentControl HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Content="{Binding DynamicContent}" />6 </Grid>
1 using System;2 using Windows.UI.Xaml;3 using Windows.UI.Xaml.Controls;4 using Windows.UI.Popups;
1 public class MainPageViewModel : Core.ViewModelBase 2 { 3 public MainPageViewModel() 4 { 5 InitData(); 6 if(DynamicContent == null) 7 { 8 DynamicContent = ViewControlLocator.Instance.RegisterViewControl<HomePage, HomePageViewModel>(true); 9 }10 //---物理返回键api---11 Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;12 }13 14 #region attribute15 //---计时器---16 DispatcherTimer timer = null;17 int timesToTick = 2;18 19 private UserControl m_DynamicContent;20 public UserControl DynamicContent21 {22 get { return m_DynamicContent; }23 set { m_DynamicContent = value; RaisePropertyChanged("DynamicContent"); }24 }25 26 private Visibility m_ExitNotificationVisible;27 public Visibility ExitNotificationVisible28 {29 get { return m_ExitNotificationVisible; }30 set { m_ExitNotificationVisible = value; RaisePropertyChanged("ExitNotificationVisible"); }31 }32 #endregion33 34 #region method35 private void InitData()36 {37 ExitNotificationVisible = Visibility.Collapsed;38 }39 40 //---关闭事件---41 void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)42 {43 e.Handled = true;44 if (ExitNotificationVisible == Visibility.Collapsed)45 {46 ExitNotificationVisible = Visibility.Visible;47 48 if(timer == null)49 {50 timer = new DispatcherTimer();51 } 52 timer.Interval = TimeSpan.FromSeconds(2);53 timer.Tick += timer_Tick;54 timer.Start();55 }56 else57 {58 App.Current.Exit();59 }60 }61 62 //---到时没有执行关闭操作,隐藏关闭操作提示---63 void timer_Tick(object sender, object e)64 {65 timesToTick--;66 if (timesToTick == 0)67 {68 timesToTick = 2;69 timer.Tick -= timer_Tick;70 timer.Stop();71 ExitNotificationVisible = Visibility.Collapsed; 72 }73 }74 #endregion75 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。