TOC

This article is currently in the process of being translated into Lithuanian (~98% done).

A WPF application:

Working with App.xaml

App.xaml yra deklaratyvus jūsų programos pradžios taškas. Visual Studio jį automatiškai sukurs jums, kai pradėsite naują WPF programą, įskaitant Code-behind failą, pavadintą App.xaml.cs. Jie veikia panašiai kaip ir Window, kur šie du failai yra dalinės klasės, veikiančios kartu, kad galėtumėte dirbti ir žymėjimo (XAML), ir Code-behind programose.

App.xaml.cs išplečia Application klasę, kuri yra pagrindinė WPF Windows programos klasė. .NET nueis į šią klasę, kad gautų paleidimo instrukcijas, ir iš jos paleis norimą langą arba puslapį. Čia taip pat galima prenumeruoti svarbius taikomosios programos įvykius, tokius kaip taikomosios programos paleidimas, neapdorotos išimtys ir pan. Daugiau apie tai vėliau.

Viena iš dažniausiai naudojamų App.xaml failo funkcijų - apibrėžti visuotinius išteklius, kurie gali būti naudojami ir pasiekiami iš visos programos, pavyzdžiui, visuotinius stilius. Tai bus išsamiai aptarta vėliau.

App.xaml struktūra

Kuriant naują programą, automatiškai sugeneruotas App.xaml atrodys maždaug taip:

<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>

Pagrindinis dalykas, į kurį reikia atkreipti dėmesį, yra savybė StartupUri. Iš tikrųjų tai yra dalis, nurodanti, kurį langą ar puslapį paleisti paleidus programą. Šiuo atveju bus paleistas MainWindow.xaml, tačiau jei norite, kad pradžiai būtų naudojamas kitas langas, galite tai tiesiog pakeisti.

Kai kuriais atvejais norite labiau kontroliuoti, kaip ir kada rodomas pirmasis langas. Tokiu atveju galite pašalinti StartupUri savybę ir reikšmę ir viską atlikti iš Code-Behind. Tai bus parodyta toliau.

App.xaml.cs struktūra

Atitinkamas App.xaml.cs paprastai atrodo taip naujame projekte:

using System;
using System.Collections.Generic;
using System.Windows;

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

	}
}

Pamatysite, kaip ši klasė išplečia taikomosios programos klasę ir leidžia atlikti veiksmus taikomosios programos lygmeniu. Pavyzdžiui, galite prenumeruoti įvykį Startup, kuriame galite rankiniu būdu sukurti pradžios langą.

Here's an example:

<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>

Atkreipkite dėmesį, kad StartupUri pakeistas Startup įvykio prenumerata (įvykių prenumerata per XAML paaiškinta kitame skyriuje). Code-Behind programoje įvykį galite naudoti taip:

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();
		}
	}
}

Šiame pavyzdyje, palyginti su tiesiog StartupUri savybės naudojimu, įdomu tai, kad prieš rodydami paleidimo langą galime juo manipuliuoti. Šiuo atveju pakeičiame jo pavadinimą, kuris nėra labai naudingas, bet taip pat galite užsiprenumeruoti įvykius arba galbūt parodyti užsklandą. Kai turite visą valdymą, yra daugybė galimybių. Keletą jų giliau panagrinėsime kituose šios mokomosios programos straipsniuose.