TOC

This article has been localized into Czech by the community.

WPF aplikace:

Práce s App.xaml

App.xaml je deklarativní výchozí bod aplikace. Visual Studio jej automaticky vytvoří při spuštění nové aplikace WPF, včetně souboru s kódem nazvaný App.xaml.cs. Funguje podobně jako u okna, kde dva soubory jsou částečné třídy, které spolupracují, aby vám umožnily pracovat v obou kódech (XAML) a Code-behind.

Třída v App.xaml.cs dědí ze třídy Application, což je centrální třída WPF aplikace. .NET z této třídy získá instrukce, jak má aplikaci spustit, a po té již spustí kýžené okno (Window) či stránku (Page). Také je tento soubor místo, kde je možné napojit se na důležité události aplikace, jako spuštění, neošetřené vyjímky atp. Více o tom později.

Jednou z nejčastěji používaných funkcí souboru App.xaml je možnost definovat globální zdroje (resources), které je možné použít ze všech míst aplikace, například globální styly. To podrobně probereme později.

Struktura App.xaml

Když vytvoříte novou aplikaci, bude vám automaticky vygenerován soubor App.xaml, který bude vypadat nějak takto:

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

Zde je dobré si povšimnout vlastnosti StartupUri. Je to vlastně část kódu, která udává, které okno nebo stránka se spustí při spuštění aplikace. V tomto případě bude spuštěno okno MainWindow.xaml, pokud však chcete jako výchozí okno zvolit úplně jiné, můžete to jednoduše změnit.

V některých situacích chcete mít větší kontrolu nad tím, jak a kdy se zobrazí první okno. V takovém případě můžete odebrat vlastnost a hodnotu StartupUri a pak to vše provést z příkazu Code-Behind. To bude demonstrováno níže.

Struktura App.xaml.cs

Když vytvoříte novou aplikaci bude vám automaticky vygenerovaná App.xaml.cs která bude vypadat nějak takto:

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

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

	}
}

Uvidíte, jak tato třída rozšiřuje třídu Application, což nám umožňuje dělat věci na úrovni aplikace. Můžete se například přihlásit k odběru události Startup, kdy si můžete ručně vytvořit počáteční okno.

Zde je příklad:

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

Všimněte si, jak StartupUri byl nahrazen odběrem události Spuštění aplikace (přihlášení k odběru událostí prostřednictvím XAML je vysvětleno v jiné kapitole). V Code-Behind můžete událost použít takto:

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

Skvělou věcí v tomto příkladu, ve srovnání s pouhým použitím Vlastnost StartupUri, je to, že se dostaneme k manipulaci spouštěného okna před jeho zobrazením. V tomto okamžiku můžeme změnit jeho název, což jistě není tak potřebné, ale můžete se tak přihlásit k odběru událostí nebo případně zobrazit úvodní obrazovku. Pokud máte vše pod kontrolou, máte tak k dispozici mnoho dalších možností. V příštích článcích tohoto tutoriálu se podíváme několika z nich detailněji.