TOC

This article has been localized into Swedish by the community.

En WPF-applikation:

Arbeta i App.xaml

App.xaml är den deklarativa startpunkten för din applikation. Visual Studio kommer automatiskt att skapa den när du skapar en ny WPF-applikation, tillsammans med en Code behind-fil som kallas App.xaml.cs. De fungerar likt ett fönster, där två filer är partiella klasser som arbetar tillsammans och låter dig arbeta i både XAML-filen och Code-behind.

App.xaml.cs utökar klassen Application, vilket är en central klass i en WPF Windows-applikation. .NET kommer att gå till den här klassen för startinstruktioner och sedan starta det önskade fönstret eller sidan därifrån. Här kan man också prenumerera på viktiga events, till exempel applikationens uppstart, ohanterade undantag och så vidare. Mer om det senare.

En av de viktigaste användningarna av App.xaml är för att definiera globala resurser som kan användas från olika delar av applikationen, till exempel globala stilformateringar (styles). Detta kommer att diskuteras mer i detalj senare.

Strukturen för App.xaml

När du skapar en ny applikation så kommer App.xaml automatiskt att genereras, och se ut liknande:

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

Det viktigaste att notera här är egenskapen StartupUri. Det är den delen som ger instruktion om vilket fönster eller sida som ska visas först när applikationen startar. I det här fallet kommer MainWindow.xaml att startas, men om du vill ha ett annat fönster som startpunkt kan det enkelt ändras.

I vissa fall kan du vilja ha mer kontroll över hur och när det första fönstret visas. Du kan då ta bort egenskapen StartupUri och dess värde och hantera det från Code-behind istället. Det demonstreras nedan.

Strukturen för App.xaml.cs

Den matchande filen App.xaml.cs brukar se ut så här för ett nytt projekt:

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

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

	}
}

Du ser nu hur denna klass utökar klassen Application och ger oss möjlighet att göra saker på applikationsnivån. Som exempel kan du prenumerera på eventet Startup, där du manuellt kan skapa ditt startfönster.

Här är ett exempel:

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

Notera nu hur StartupUri har ersatts med en prenumeration på Startup-eventet (hur man prenumererar på ett event via XAML förklaras i ett annat kapitel). I Code-behind kan du använda eventet på följande sätt:

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

Det intressante med det här exemplet, jämfört med att bara använda egenskapen StartupUri, är att vi får möjlighet att manipulera startfönstret innan det visas. Här ändrar vi fönstrets titel, vilket kanske inte är så meningsfullt, men du kan också prenumerera på olika event eller kanske visa en splashscreen. När du har all kontroll finns det många möjligheter. Vi tittar närmare på flera av den i de följande avsnitten.