2012-11-09 77 views
1

我需要激活啓動屏幕並使用C#和XAML在Windows 8 metro應用程序中添加進度環。 我已經添加了擴展啓動畫面,但它根本沒有顯示!任何人都可以告訴我如何做到這一點?如何將進度環添加到Windows 8的啓動畫面?

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); 
     } 
    } 
} 
+0

歡迎使用stackoverflow!如果可能的話,最好爲您的問題提供示例代碼,以提高發布後的準確性並獲得更好的結果。有一個美好的一天:) –

+2

你不能用啓動畫面的內置支持來做到這一點。這也沒有什麼意義,商店應用程序*必須*在合理的時間內啓動,否則將被殺死。太短會使進度環有用。你需要創建自己的。不太確定這是否會通過商店驗證順便說一句。 –

回答

0

您是通過使用擴展啓動畫面在正確的軌道上。

你應該與樣品和快速啓動,運行啓動,看它是否適合你 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方面可能是不適當的。

相關問題