using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; 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; namespace Intersvyaz { /// /// Обеспечивает зависящее от конкретного приложения поведение, дополняющее класс Application по умолчанию. /// sealed partial class App : Application { /// /// Инициализирует одноэлементный объект приложения. Это первая выполняемая строка разрабатываемого /// кода; поэтому она является логическим эквивалентом main() или WinMain(). /// public App() { this.InitializeComponent(); this.Suspending += OnSuspending; } /// /// Вызывается при обычном запуске приложения пользователем. Будут использоваться другие точки входа, /// например, если приложение запускается для открытия конкретного файла. /// /// Сведения о запросе и обработке запуска. protected override void OnLaunched(LaunchActivatedEventArgs e) { Frame rootFrame = Window.Current.Content as Frame; // Не повторяйте инициализацию приложения, если в окне уже имеется содержимое, // только обеспечьте активность окна if (rootFrame == null) { // Создание фрейма, который станет контекстом навигации, и переход к первой странице rootFrame = new Frame(); rootFrame.NavigationFailed += OnNavigationFailed; if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { //TODO: Загрузить состояние из ранее приостановленного приложения } // Размещение фрейма в текущем окне Window.Current.Content = rootFrame; } if (e.PrelaunchActivated == false) { if (rootFrame.Content == null) { // Если стек навигации не восстанавливается для перехода к первой странице, // настройка новой страницы путем передачи необходимой информации в качестве параметра // параметр rootFrame.Navigate(typeof(MainPage), e.Arguments); } // Обеспечение активности текущего окна Window.Current.Activate(); } } /// /// Вызывается в случае сбоя навигации на определенную страницу /// /// Фрейм, для которого произошел сбой навигации /// Сведения о сбое навигации void OnNavigationFailed(object sender, NavigationFailedEventArgs e) { throw new Exception("Failed to load Page " + e.SourcePageType.FullName); } /// /// Вызывается при приостановке выполнения приложения. Состояние приложения сохраняется /// без учета информации о том, будет ли оно завершено или возобновлено с неизменным /// содержимым памяти. /// /// Источник запроса приостановки. /// Сведения о запросе приостановки. private void OnSuspending(object sender, SuspendingEventArgs e) { var deferral = e.SuspendingOperation.GetDeferral(); //TODO: Сохранить состояние приложения и остановить все фоновые операции deferral.Complete(); } } }