Advertisement
Choubada

App.xaml.cs

Feb 18th, 2022
907
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Runtime.InteropServices.WindowsRuntime;
  6. using Windows.ApplicationModel;
  7. using Windows.ApplicationModel.Activation;
  8. using Windows.Foundation;
  9. using Windows.Foundation.Collections;
  10. using Windows.UI.Xaml;
  11. using Windows.UI.Xaml.Controls;
  12. using Windows.UI.Xaml.Controls.Primitives;
  13. using Windows.UI.Xaml.Data;
  14. using Windows.UI.Xaml.Input;
  15. using Windows.UI.Xaml.Media;
  16. using Windows.UI.Xaml.Navigation;
  17.  
  18. namespace Sacro
  19. {
  20.     /// <summary>
  21.     /// Fournit un comportement spécifique à l'application afin de compléter la classe Application par défaut.
  22.     /// </summary>
  23.     sealed partial class App : Application
  24.     {
  25.         public static Frame PageFrame { get; set; }
  26.         /// <summary>
  27.         /// Initialise l'objet d'application de singleton.  Il s'agit de la première ligne du code créé
  28.         /// à être exécutée. Elle correspond donc à l'équivalent logique de main() ou WinMain().
  29.         /// </summary>
  30.         public App()
  31.         {
  32.             this.InitializeComponent();
  33.             this.Suspending += OnSuspending;
  34.         }
  35.  
  36.         /// <summary>
  37.         /// Invoqué lorsque l'application est lancée normalement par l'utilisateur final.  D'autres points d'entrée
  38.         /// seront utilisés par exemple au moment du lancement de l'application pour l'ouverture d'un fichier spécifique.
  39.         /// </summary>
  40.         /// <param name="e">Détails concernant la requête et le processus de lancement.</param>
  41.         protected override void OnLaunched(LaunchActivatedEventArgs e)
  42.         {
  43.             Frame rootFrame = Window.Current.Content as Frame;
  44.  
  45.             // Ne répétez pas l'initialisation de l'application lorsque la fenêtre comporte déjà du contenu,
  46.             // assurez-vous juste que la fenêtre est active
  47.             if (rootFrame == null)
  48.             {
  49.                 // Créez un Frame utilisable comme contexte de navigation et naviguez jusqu'à la première page
  50.                 rootFrame = new Frame();
  51.  
  52.                 rootFrame.NavigationFailed += OnNavigationFailed;
  53.  
  54.                 if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
  55.                 {
  56.                     //TODO: chargez l'état de l'application précédemment suspendue
  57.                 }
  58.  
  59.                 // Placez le frame dans la fenêtre active
  60.                 Window.Current.Content = rootFrame;
  61.             }
  62.  
  63.             if (e.PrelaunchActivated == false)
  64.             {
  65.                 if (rootFrame.Content == null)
  66.                 {
  67.                     // Quand la pile de navigation n'est pas restaurée, accédez à la première page,
  68.                     // puis configurez la nouvelle page en transmettant les informations requises en tant que
  69.                     // paramètre
  70.                     rootFrame.Navigate(typeof(MainPage), e.Arguments);
  71.                 }
  72.                 // Vérifiez que la fenêtre actuelle est active
  73.                 Window.Current.Activate();
  74.             }
  75.         }
  76.  
  77.         /// <summary>
  78.         /// Appelé lorsque la navigation vers une page donnée échoue
  79.         /// </summary>
  80.         /// <param name="sender">Frame à l'origine de l'échec de navigation.</param>
  81.         /// <param name="e">Détails relatifs à l'échec de navigation</param>
  82.         void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
  83.         {
  84.             throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
  85.         }
  86.  
  87.         /// <summary>
  88.         /// Appelé lorsque l'exécution de l'application est suspendue.  L'état de l'application est enregistré
  89.         /// sans savoir si l'application pourra se fermer ou reprendre sans endommager
  90.         /// le contenu de la mémoire.
  91.         /// </summary>
  92.         /// <param name="sender">Source de la requête de suspension.</param>
  93.         /// <param name="e">Détails de la requête de suspension.</param>
  94.         private void OnSuspending(object sender, SuspendingEventArgs e)
  95.         {
  96.             var deferral = e.SuspendingOperation.GetDeferral();
  97.             //TODO: enregistrez l'état de l'application et arrêtez toute activité en arrière-plan
  98.             deferral.Complete();
  99.         }
  100.     }
  101. }
  102.  
Advertisement
RAW Paste Data Copied
Advertisement