mirror of
https://github.com/SirLecram/HospitalServerManager
synced 2024-11-12 21:45:27 +01:00
101 lines
4.0 KiB
C#
101 lines
4.0 KiB
C#
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 HospitalServerManager
|
|
{
|
|
/// <summary>
|
|
/// Zapewnia zachowanie specyficzne dla aplikacji, aby uzupełnić domyślną klasę aplikacji.
|
|
/// </summary>
|
|
sealed partial class App : Application
|
|
{
|
|
/// <summary>
|
|
/// Inicjuje pojedynczy obiekt aplikacji. Jest to pierwszy wiersz napisanego kodu
|
|
/// wykonywanego i jest logicznym odpowiednikiem metod main() lub WinMain().
|
|
/// </summary>
|
|
public App()
|
|
{
|
|
this.InitializeComponent();
|
|
this.Suspending += OnSuspending;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Wywoływane, gdy aplikacja jest uruchamiana normalnie przez użytkownika końcowego. Inne punkty wejścia
|
|
/// będą używane, kiedy aplikacja zostanie uruchomiona w celu otworzenia określonego pliku.
|
|
/// </summary>
|
|
/// <param name="e">Szczegóły dotyczące żądania uruchomienia i procesu.</param>
|
|
protected override void OnLaunched(LaunchActivatedEventArgs e)
|
|
{
|
|
Frame rootFrame = Window.Current.Content as Frame;
|
|
|
|
// Nie powtarzaj inicjowania aplikacji, gdy w oknie znajduje się już zawartość,
|
|
// upewnij się tylko, że okno jest aktywne
|
|
if (rootFrame == null)
|
|
{
|
|
// Utwórz ramkę, która będzie pełnić funkcję kontekstu nawigacji, i przejdź do pierwszej strony
|
|
rootFrame = new Frame();
|
|
|
|
rootFrame.NavigationFailed += OnNavigationFailed;
|
|
|
|
if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
|
|
{
|
|
//TODO: Załaduj stan z wstrzymanej wcześniej aplikacji
|
|
}
|
|
|
|
// Umieść ramkę w bieżącym oknie
|
|
Window.Current.Content = rootFrame;
|
|
}
|
|
|
|
if (e.PrelaunchActivated == false)
|
|
{
|
|
if (rootFrame.Content == null)
|
|
{
|
|
// Kiedy stos nawigacji nie jest przywrócony, przejdź do pierwszej strony,
|
|
// konfigurując nową stronę przez przekazanie wymaganych informacji jako
|
|
// parametr
|
|
rootFrame.Navigate(typeof(View.MainFrameView), e.Arguments);
|
|
}
|
|
// Upewnij się, ze bieżące okno jest aktywne
|
|
Window.Current.Activate();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Wywoływane, gdy nawigacja do konkretnej strony nie powiedzie się
|
|
/// </summary>
|
|
/// <param name="sender">Ramka, do której nawigacja nie powiodła się</param>
|
|
/// <param name="e">Szczegóły dotyczące niepowodzenia nawigacji</param>
|
|
void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
|
|
{
|
|
throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Wywoływane, gdy wykonanie aplikacji jest wstrzymywane. Stan aplikacji jest zapisywany
|
|
/// bez wiedzy o tym, czy aplikacja zostanie zakończona, czy wznowiona z niezmienioną zawartością
|
|
/// pamięci.
|
|
/// </summary>
|
|
/// <param name="sender">Źródło żądania wstrzymania.</param>
|
|
/// <param name="e">Szczegóły żądania wstrzymania.</param>
|
|
private void OnSuspending(object sender, SuspendingEventArgs e)
|
|
{
|
|
var deferral = e.SuspendingOperation.GetDeferral();
|
|
//TODO: Zapisz stan aplikacji i zatrzymaj wszelkie aktywności w tle
|
|
deferral.Complete();
|
|
}
|
|
}
|
|
}
|