TOC

This article has been localized into Bulgarian by the community.

WPF приложение :

Работа с App.xaml

App.xaml е декларативната начална точка на вашето приложение. Visual Studio автоматично ще го създаде за вас, когато стартирате ново WPF приложение, включително файл с код, наречен App.xaml.cs. Те функционират подобно на прозорците (Windows) - програма, в която двата файла са частични класове работещи заедно, за да ви позволят да използването както на XAML, така и на код (Code-behind).

App.xaml.cs разширява Application класа, който е основен клас в едно WPF Windows приложение. .NET ще изпълни началните инструкции в този клас и ще стартира желания прозорец (Window) или страница (Page) от там. Това е и подходящото място за добавяне на допълнителни важни събития в приложението, като начало на приложението, необработени изключения (exceptions) и т.н. Повече за това по-нататък.

Една от най-често използваните функции на файла 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, позволявайки ни да правим неща на ниво приложение. Например, можете да се абонирате за събитието Startup, където можете ръчно да създадете своя начален прозорец.

Ето един пример:

<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, е, че можем да манипулираме стартовия прозорец още преди да го покажем. В това тука променяме заглавието му, което не е много полезно, но освен това можете да се абонирате за други събития или може би да покажете начален екран. Когато имате целия контрол, има много възможности. Ще разгледаме по-задълбочено някои от тях в следващите статии на това ръководство.