This article is currently in the process of being translated into Croatian (~98% done).
Working with App.xaml
App.xaml je deklarativna početna točka vaše aplikacije. Visual Studio će ga automatski stvoriti za vas kada pokrenete novu WPF aplikaciju, uključujući datoteku iza koda pod nazivom App.xaml.cs. Rade slično kao za Window, gdje su dvije datoteke djelomične klase, rade zajedno kako bi vam omogućile rad i u označavanju (XAML) i u pozadini koda.
App.xaml.cs proširuje klasu Application, koja je središnja klasa u WPF Windows aplikaciji. .NET će otići u ovu klasu za upute o pokretanju i zatim pokrenuti željeni prozor ili stranicu od tamo. Ovo je također mjesto za pretplatu na važne događaje u aplikaciji, poput pokretanja aplikacije, neobrađenih iznimaka i tako dalje. Više o tome kasnije.
Jedna od najčešće korištenih značajki datoteke App.xaml je definiranje globalnih resursa koji se mogu koristiti i kojima se može pristupiti iz cijele aplikacije, na primjer globalni stilovi. O tome će biti detaljnije riječi kasnije.
App.xaml structure
Prilikom izrade nove aplikacije, automatski generirani App.xaml izgledat će otprilike ovako:
<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>
Glavna stvar koju ovdje treba primijetiti je svojstvo StartupUri. Ovo je zapravo dio koji upućuje koji prozor ili stranicu treba pokrenuti kada se aplikacija pokrene. U ovom slučaju, MainWindow.xaml će se pokrenuti, ali ako želite koristiti drugi prozor kao početnu točku, možete to jednostavno promijeniti.
U nekim situacijama želite više kontrole nad načinom i vremenom prikazivanja prvog prozora. U tom slučaju možete ukloniti svojstvo i vrijednost StartupUri, a zatim sve to učiniti iz Code-Behinda. To će biti prikazano u nastavku.
App.xaml.cs struktura
Odgovarajući App.xaml.cs obično će izgledati ovako za novi projekt:
using System;
using System.Collections.Generic;
using System.Windows;
namespace WpfTutorialSamples
{
public partial class App : Application
{
}
}
Vidjet ćete kako ova klasa proširuje klasu aplikacije, dopuštajući nam da radimo stvari na razini aplikacije. Na primjer, možete se pretplatiti na događaj Startup, gdje možete ručno stvoriti svoj početni prozor.
Evo primjera:
<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>
Primijetite kako je StartupUri zamijenjen pretplatom na događaj pokretanja (pretplata na događaje putem XAML-a objašnjena je u drugom poglavlju). U Code-Behindu događaj možete koristiti ovako:
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();
}
}
}
Kul stvar u ovom primjeru, u usporedbi sa samo korištenjem svojstva StartupUri, je to što možemo manipulirati početnim prozorom prije nego što ga prikažemo. U ovome mu mijenjamo naslov, što nije osobito korisno, ali također se možete pretplatiti na događaje ili možda prikazati početni zaslon. Kada imate svu kontrolu, postoji mnogo mogućnosti. Proučiti ćemo neke od njih dublje u sljedećim člancima ovog vodiča.