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)

posted @ 2012-08-15 23:58  finding_job-sunt  阅读(1278)  评论(0编辑  收藏  举报