TOC

This article has been localized into Ukrainian by the community.

Додаток WPF:

Робота з App.xaml

App.xaml є декларативною відправною точкою вашої програми. Visual Studio автоматично створить його для вас під час запуску нової програми WPF, включаючи файл із кодом, який називається App.xaml.cs. Вони працюють так само, як для Вікна, де два файли є частковими класами, працюючи разом, дозволяючи працювати як у розмітці (XAML), так і поза кодом.

App.xaml.cs розширює клас Application, який є центральним класом у програмі WPF Windows. .NET перейде до цього класу, щоб розпочати інструкції, а потім запустити потрібне Вікно чи Сторінку звідти. Тут також можна підписатись на важливі події програми, такі як запуск програми, необроблені винятки тощо. Детальніше про це пізніше.

Однією з найбільш часто використовуваних функцій файлу App.xaml є визначення глобальних ресурсів, які можуть бути використані та доступні з усіх додатків, наприклад, глобальних стилів. Це буде детально обговорено далі.

Структура App.xaml

При створенні нового додатка автоматично згенерований App.xaml виглядатиме приблизно так:

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

Головне, на що слід звернути увагу, - це властивість StartupUri. Це фактично частина, яка вказує, яке вікно чи сторінку запускати під час запуску програми. У цьому випадку буде запущено MainWindow.xaml, але якщо ви хочете використовувати інше вікно як початкову точку, ви можете просто змінити це.

У деяких ситуаціях потрібно більше контролювати спосіб і час відображення першого вікна. У цьому випадку ви можете видалити властивість і значення StartupUri, а потім зробити все це з Code-Behind. Це буде продемонстровано нижче.

Структура App.xaml.cs

Відповідний App.xaml.cs зазвичай виглядатиме так для нового проекту:

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

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

	}
}

Ви побачите, як цей клас розширює клас Application, дозволяючи нам робити речі на рівні програми. Наприклад, ви можете підписатися на подію запуску, де ви можете вручну створити стартове вікно.

Ось приклад:

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

Зверніть увагу, як StartupUri замінено підпискою на подію Startup (підписка на події через XAML пояснюється в іншому розділі). У Code-Behind ви можете використовувати подію таким чином:

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

Найцікавіше в цьому прикладі, порівняно із використанням властивості StartupUri, полягає в тому, що ми маніпулюємо вікном запуску перед його показом. У цьому ми змінюємо його назву, що не дуже корисно, але ви також можете підписатися на події або, можливо, показати заставку. Коли у вас є весь контроль, існує безліч можливостей. Ми розглянемо кілька з них у наступних статтях цього посібника.