wordpress防站,给公司做门户网站多少钱,带购物车的网站模板,医院 网站建设很多时候我们需要在启动程序的时候根据状态改变初始导航页面#xff0c;比如程序在启动的时候判断用户是否登录#xff0c; 如果未登录则跳转到LoginPage.xaml否则跳转到MainPage界面。 这时候就要分析程序的启动和导航的过程。 程序的启动是App.xamlcs负责的。 App类的构造器… 很多时候我们需要在启动程序的时候根据状态改变初始导航页面比如程序在启动的时候判断用户是否登录 如果未登录则跳转到LoginPage.xaml否则跳转到MainPage界面。 这时候就要分析程序的启动和导航的过程。 程序的启动是App.xamlcs负责的。 App类的构造器里面就是一个App的初始化流程 1 public App()2 {3 // 未捕获的异常的全局处理程序。4 UnhandledException Application_UnhandledException;5 6 // 标准 XAML 初始化7 InitializeComponent();8 9 // 特定于电话的初始化
10 InitializePhoneApplication();
11
12 // 语言显示初始化
13 InitializeLanguage();
14
15 // 调试时显示图形分析信息。
16 if (Debugger.IsAttached)
17 {
18 // 显示当前帧速率计数器。
19 Application.Current.Host.Settings.EnableFrameRateCounter true;
20
21 // 显示在每个帧中重绘的应用程序区域。
22 //Application.Current.Host.Settings.EnableRedrawRegions true
23
24 // 启用非生产分析可视化模式
25 // 该模式显示递交给 GPU 的包含彩色重叠区的页面区域。
26 //Application.Current.Host.Settings.EnableCacheVisualization true
27
28 // 通过禁用以下对象阻止在调试过程中关闭屏幕
29 // 应用程序的空闲检测。
30 // 注意: 仅在调试模式下使用此设置。禁用用户空闲检测的应用程序在用户不使用电话时将继续运行
31 // 并且消耗电池电量。
32 PhoneApplicationService.Current.UserIdleDetectionMode IdleDetectionMode.Disabled;
33 }
34
35 } 其中的InitializePhoneApplication() 就有页面导航的相关处理 1 // 请勿向此方法中添加任何其他代码2 private void InitializePhoneApplication()3 {4 if (phoneApplicationInitialized)5 return;6 7 // 创建框架但先不将它设置为 RootVisual这允许初始8 // 屏幕保持活动状态直到准备呈现应用程序时。9 RootFrame new PhoneApplicationFrame();
10 RootFrame.Navigated CompleteInitializePhoneApplication;
11
12 // 处理导航故障
13 RootFrame.NavigationFailed RootFrame_NavigationFailed;
14
15 // 在下一次导航中处理清除 BackStack 的重置请求
16 RootFrame.Navigated CheckForResetNavigation;
17
18 // 确保我们未再次初始化
19 phoneApplicationInitialized true;
20 } 由于他的重要性微软在开头提醒我们不要添加任何其他代码以免导致程序无法启动。但是我们为了达到目的只能选择无视之╮(╯-╰)╭示意图在InitializePhoneApplication()里面加入RootFrame.Navigating new NavigatingCancelEventHandler(RootFrame_Navigating);给navigating事件添加自己写的Handler NavigatingCancelEventHandler: 1 void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)2 {3 if (e.Uri.ToString().Contains(LoginPage.xaml) isLogined()) //这里一定要有判断条件因为RootFrame在任何页面进行Navigate的时候都会掉用Navigating或者采用跟RootFrame.Navigated 方式一样的递归方法 4 {5 e.Cancel true;//取消事件 6 string uriString /MainPage.xaml;7 Uri ur new Uri(uriString, UriKind.Relative);8 App.RootFrame.Dispatcher.BeginInvoke(delegate9 {
10 App.RootFrame.Navigate(ur);
11 });
12 }
13 } 最后一点就是修改WMAppManifest.xml中默认的导航页把他改成LoginPage.xaml。 然后就大功告成啦。o(^▽^)o 作者阳光是金色的 出处http://www.cnblogs.com/aureate-sunshine/ 本文版权归作者和博客园共有欢迎转载但未经作者同意必须保留此段声明且在文章页面明显位置给出原文连接否则保留追究法律责任的权利。 转载于:https://www.cnblogs.com/aureate-sunshine/p/4148557.html