TOC

This article is currently in the process of being translated into Norwegian Bokmål (~99% done).

A WPF application:

Working with App.xaml

App.xaml er startpunkted for deklarasjoner i applikasjonen din. Visual Studio vil automatisk generere filen for deg når du opretter et ny WPF applikasjon, inkludert en tilhørende kodefil kalt App.xaml.cs, De fungerer funger rimelig likt som for vinduer, hvor to filer er delvise klasser og arbeider sammen for å tillate at du kan arbeide i både markeringsfilen (XAML) og kodefilen (CS).

App.xaml.cs utvider applikasjons-klassen, som er en sentral klasse i en WPF applikasjon. .Net vil sjekke denne klassen for oppstarts-instruksjoner og deretter åpne det aktuelle vinduet eller siden derfra. Det er også her du må plassere abonnement på viktige hendelser, som når oppstart av applikasjonen er ferdig, uhåndterte feil m.m. Mer om det senere.

En av de mest brukte egenskapene til App.xaml filen er å definere globale resurser som kan benyttes og nås fra hele applikasjonen – som for eksempel globale stiler. Dette ser vi på i detalj senere.

App.xaml strukturen

Ved opprettelse av en ny applikasjon vil den automatisk genererte App.xaml filen se noe slik ut:

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

Hovedtingen å merke seg her er StartupUri egenskapen. Dette er den delen som bestemmer hvilket vindu (Window) eller side (Page) som skal vises når applikasjonen startes. I dette tilfellet vil MainWindow.xaml bli vist, men om du ønsker at et annet vindu skal vises først, kan du enkelt endre dette.

I enkelte situasjoner ønsker du kanskje mer kontroll over hvordan og når det første vinduet skal vises. I de tilfellene kan StartupUri egenskapen/linjen fjernes slik at dette kan styres fra kodefilen istedenfor. Dette vises under.

App.xaml.cs strukturen

Den tilhørende App.xaml.cs filen vil vanligvis se noe slik ut:

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

namespace WpfTutorialSamples
{
	public partial class App : Application
	{

	}
}

Du kan se hvordan denne klassen utvider applikajons-klassen og tillater oss å gjøre ting på applikasjons-nivå. For eksempel kan du abonnere på oppstartshendelesen (Startup), hvor du kan definere ditt eget oppstartsvindu.

Her er et eksempel:

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

Legg merke til hvordan StartupUri har blitt erstattet med et abonnement til oppstartshendelsen (Startup). Abonnering via XAML er forklart i et annet kapittel. I kodefilen kan du benytte en hendelse som dette:

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

Den kule delen i dette eksempelet, sammenlignet med å bare benytte StartupUri-egenskapen, er at vi kan manipulere oppstartsvinduet før det vises på skjermen. I dette tilfellet endres tittelen, hvilket ikke er veldig nyttig, men du kan abonnere på andre hendelser og kanskje vise et oppstarts-vindu. Når du har full kontroll er det mange muligheter. Vi skal se nærmere på en del i neste artikkel av veilederen.


Table of Contents