This article has been localized into Polish by the community.
Praca z App.xaml
Plik App.xaml jest punktem startu twojej aplikacji. Visual Studio automatycznie generuje go oraz plik Code-behind App.xaml.cs podczas tworzenia przez ciebie nowego projektu WPF. Podobnie jak w przypadku klasy Window, te dwa pliki są klasami typu partial i pracując razem pozwalają ci na modyfikację zarówno poprzez znaczniki w pliku XAML, jak i kod w pliku backend.
App.xaml.cs rozszerza klase Application, która jest centralną klasą w aplikacjach WPF. .Net najpierw kieruje się do tej klasy, aby wykonać wszystkie instrukcje startowe, a następnie uruchamia właściwe dla twojego projektu okna. To tutaj można subskrybować ważne zdarzenia aplikacji jak start aplikacji, nieobsłużone wyjątki i inne. Więcej na ten temat w dalszych rozdziałach.
Jedną z najczęściej używanych funkcji pliku App.xaml.cs jest definiowanie zasobów globalnych, które będą mogły być wykorzystywane w całej aplikacji. Będzie to omówione szerzej w dalszych rozdziałach.
Struktura App.xaml
Podczas tworzenia nowej aplikacji, automatycznie wygenerowany plik App.xaml będzie wyglądał w następujący sposób:
<Application x:Class="WpfTutorialSamples.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>
Rzeczą, która rzuca się w oczy, jest właściwość StartupUri. Jest ona odpowiedzialna za wskazywanie jakie okno lub strona powinna być uruchomiona podczas startu aplikacji. W tym wypadku MainWindow.xaml będzie uruchomione, ale jeśli chcesz, możesz użyć innego okna jako punkt startowy, po prostu edytując tę właściwość.
W niektórych sytuacjach możesz chcieć posiadać większą kontrolę nad tym, jak i kiedy pierwsze okno jest wyświetlane. W takiej sytuacji możesz usunąć właściwość StartupUri razem z jej wartością i zapisać to w pliku źródłowym (Code-Behind). To będzie zademonstrowane poniżej.
Struktura App.xaml.cs
Odpowiadająca klasa App.xaml.cs będzie zazwyczaj wyglądała podobnie w nowym projekcie:
using System;
using System.Collections.Generic;
using System.Windows;
namespace WpfTutorialSamples
{
public partial class App : Application
{
}
}
Zobaczysz jak ta klasa rozszerza klasę Application i pozwala nam na zrobienie zmian na poziomie aplikacji. Dla przykładu możesz subskrybować zdarzenie Startup, gdzie ręcznie zdefiniujesz okno, jakie pojawi się przy starcie aplikacji.
Tutaj przykład:
<Application x:Class="WpfTutorialSamples.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="Application_Startup">
<Application.Resources></Application.Resources>
</Application>
Zwróć uwagę jak właściwość StartupUri została zamieniona z subskrypcją zdarzenia Startup (Subskrypcja zdarzeń za pośrednictwem XAML jest wytłumaczona w innym rozdziale). W pliku źródłowym (Code-behind) możesz użyć zdarzenia w następujący sposób:
using System;
using System.Collections.Generic;
using System.Windows;
namespace WpfTutorialSamples
{
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
// Create the startup window
MainWindow wnd = new MainWindow();
// Do stuff here, e.g. to the window
wnd.Title = "Something else";
// Show the window
wnd.Show();
}
}
}
Ciekawą rzeczą w tym przykładzie jest to, że w porównaniu do użycia po prostu właściwości StartupUri, jest to, że teraz możemy manipulować oknem programu, zanim będzie wyświetlone. W przykładzie zmieniliśmy tytuł okna, nie jest to bardzo użyteczne, ale możesz także subskrybować zdarzenia lub pokazać ekran powitalny. Kiedy masz pełną kontrolę, pojawia się wiele możliwości. Spojrzymy na niektóre z nich bliżej w kolejnych rozdziałach tego poradnika.