windows 8开发1 初始App.cs和App.xaml
声明:本文系作者原创,转载请声明转自http://home.cnblogs.com/u/sunt2012/ 谢谢合作
APP文件是windows 8 应用程序的入口,windows 8应用程序的生命周期,主要体现者,下面对该文件做一个简单的描述
构造函数 App()在逻辑等同winForm的WinMain()或者main()函数,负责执行初始化的工作
/// <summary> /// Initializes the singleton application object. This is the first line of authored code /// executed, and as such is the logical equivalent of main() or WinMain(). /// 初始化单个应用程序对象,代码执行的第一行,逻辑上等同于main() 或者 WinMain() /// </summary> public App() { this.InitializeComponent(); this.Suspending += OnSuspending; }
OnLaunched():调用应用程序时,通常由终端用户发起。其他入口点将用于在应用程序启动时打开一个特定的文件,以显示搜索结果,等等。
/// <summary> /// Invoked when the application is launched normally by the end user. Other entry points /// will be used when the application is launched to open a specific file, to display /// search results, and so forth. /// 调用应用程序时,通常由终端用户发起。其他入口点 /// 将用于在应用程序启动时打开一个特定的文件,以显示 /// 搜索结果,等等。 /// </summary> /// <param name="args"> /// Details about the launch request and process. /// 关于运行过程或者请求的详细,msdn:当应用程序启动时,提供事件信息 /// </param> protected override void OnLaunched(LaunchActivatedEventArgs args) { // Do not repeat app initialization when already running, just ensure that // the window is active //不要重复初始化已运行的应用程序,只确定窗口是活动的即可 //ApplicationExecutionState指定应用程序的当前状态 //正在运行 if (args.PreviousExecutionState == ApplicationExecutionState.Running) { Window.Current.Activate(); return; } //应用程序挂起后终止其运行 if (args.PreviousExecutionState == ApplicationExecutionState.Terminated) { //TODO: Load state from previously suspended application //从先前暂停的应用程序加载状态 } // Create a Frame to act navigation context and navigate to the first page //创建一个框架,执行上下文导航,并导航到第一页 var rootFrame = new Frame(); if (!rootFrame.Navigate(typeof(MainPage))) { throw new Exception("Failed to create initial page"); } // Place the frame in the current Window and ensure that it is active //在当前窗口中的框架,并确保它是积极的 Window.Current.Content = rootFrame; Window.Current.Activate(); }
OnSuspending(object sender, SuspendingEventArgs e):应用程序被挂起时执行,不管是应用程序被终止,还是仍然保存在内存中,都将保存应用程序的状态
/// <summary> /// Invoked when application execution is being suspended. Application state is saved /// without knowing whether the application will be terminated or resumed with the contents /// of memory still intact. /// 应用程序被挂起时执行,不管是应用程序被终止,还是仍然保存在内存中,都将保存应用程序的状态 /// </summary> /// <param name="sender">The source of the suspend request.请求挂起源</param> /// <param name="e">Details about the suspend request.</param> private void OnSuspending(object sender, SuspendingEventArgs e) { var deferral = e.SuspendingOperation.GetDeferral(); //TODO: Save application state and stop any background activity //保存应用程序状态,并且停止后台的任何程序 deferral.Complete(); }
再看App.xaml
<Application x:Class="App1.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App1"> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <!-- Styles that define common aspects of the platform look and feel Required by Visual Studio project and item templates --> <ResourceDictionary Source="Common/StandardStyles.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
ResourceDictionary,它含有对位于 Common 文件夹中的 StandardStyles.xamlResourceDictionary 的引用。StandardStyles.xaml 提供了一组默认样式,它们为应用提供 Windows 8 外观和感觉。
<Application x:Class="App1.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App1" RequestedTheme="Light"> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <!-- Styles that define common aspects of the platform look and feel Required by Visual Studio project and item templates --> <ResourceDictionary Source="Common/StandardStyles.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
RequestedThem:指定主题,默认的深色(Dart)