如何在 Windows 8 的启动画面中添加进度环? [英] How to add a progress ring to the splash screen in Windows 8?

查看:23
本文介绍了如何在 Windows 8 的启动画面中添加进度环?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要使用 C# 和 XAML 在 Windows 8 Metro 应用程序中激活初始屏幕并向其添加进度环.我添加了扩展启动画面,但它根本没有显示!谁能告诉我如何做到这一点?

I need to activate the splash screen and add to it a progress ring in a Windows 8 metro app using C# and XAML. I have added the extended splash screen but it is not showing at all! Can anybody tell me how to do this?

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using Windows.ApplicationModel;
    using Windows.ApplicationModel.Activation;
    using Windows.Foundation;
    using Windows.Foundation.Collections;
    using Windows.UI.Xaml;
    using Windows.UI.Xaml.Controls;
    using Windows.UI.Xaml.Controls.Primitives;
    using Windows.UI.Xaml.Data;
    using Windows.UI.Xaml.Input;
    using Windows.UI.Xaml.Media;
    using Windows.UI.Xaml.Navigation;
    using SplashScreenSample; 

    // The Blank Application template is documented at     http://go.microsoft.com/fwlink/?        LinkId=234227

    namespace App1
    {
    /// <summary>
    /// Provides application-specific behavior to supplement the default Application class.
    /// </summary>
    sealed partial class App : Application
    {
        /// <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().
        /// </summary>
        public App()
        {
            this.InitializeComponent();
            this.Suspending += OnSuspending;
        }

        /// <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.</param>
        protected override void OnLaunched(LaunchActivatedEventArgs args)
        {
            // Do not repeat app initialization when already running, just ensure that
            // the window is active
           /* if (args.PreviousExecutionState != ApplicationExecutionState.Running)
            {
                bool loadState = (args.PreviousExecutionState ==                  ApplicationExecutionState.Terminated);
                ExtendedSplash extendedSplash = new ExtendedSplash(args.SplashScreen, loadState);
                Window.Current.Content = extendedSplash;
            }

            Window.Current.Activate();*/

            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();
             rootFrame.Navigate(typeof(MainPage));

             // Place the frame in the current window and ensure that it is active
            Window.Current.Content = rootFrame;
             Window.Current.Activate();
            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();
        }

        /// <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();
        }

        /// <summary>
        /// Invoked when the application is activated to display search results.
        /// </summary>
        /// <param name="args">Details about the activation request.</param>
        protected override void OnSearchActivated(Windows.ApplicationModel.Activation.SearchActivatedEventArgs args)
        {
            App1.SearchResultsPage1.Activate(args.QueryText, args.PreviousExecutionState);
        }
    }
}

推荐答案

通过使用扩展的开始屏幕,您走在正确的轨道上.

You are on the right track by using the extended start screen.

您应该从示例和快速入门开始,运行它,看看它是否适合您http://msdn.microsoft.com/en-us/library/windows/apps/xaml/Hh973049%28v=win.10%29.aspxhttp://code.msdn.microsoft.com/windowsapps/Splash-screen-sample-89c1dc78

You should start with the sample and quickstart, run that, see if it works for you http://msdn.microsoft.com/en-us/library/windows/apps/xaml/Hh973049%28v=win.10%29.aspx http://code.msdn.microsoft.com/windowsapps/Splash-screen-sample-89c1dc78

如果示例有效而您的代码无效,请尝试找出两者之间的不同之处,或者将您的代码迁移到示例中.这也可能是 XAML 方面不合适的地方.

If the sample is working and your code is not, try to find what is different between the two, or alternatively migrate your code into the sample. It could be something is not proper on the XAML side too.

这篇关于如何在 Windows 8 的启动画面中添加进度环?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆