TOC

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

A WPF application:

The Window

Det første du møter når du begynner å bygge en WPF applikasjon er Window-klassen. Denne tjener som toppelement i vindus-layout og gir deg tilgang på standard ramme, tittellinje og knapper for maksimering, minimering og lukking av vindu. Et WPF vindu defineres av en kombinasjon av en XAML (.xaml) fil, der <Window> elementet er toppelement, samt en CodeBehind(.cs) fil. Hvis du bruker Visual Studio (Express) og du starter en ny WPF applikasjon, vil Visual Studio lage til kode for et default vindu for deg. Det vil si noenlunde slik ut:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>

    </Grid>
</Window>

x:class attributtet forteller XAML hvilken klasse som skal brukes. I vårt tilfelle Window1, som Visual Studio også har laget til for oss. Du finner dette i prosjekt-tre visningen i Visual Studio, som en undernode i XAML filen. Dette vil normalt se slik ut:

using System;
using System.Windows;
using System.Windows.Controls;
//…more using statements

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    }
}

Som du ser, er Window1 klassen definert som partial. Dette er fordi klassen kombineres med koden i XAML fil under kjøring av applikasjonen, slik at vinduet vises slik du har designet det. Det er kallet til InitializeComponent() som er ansvarlig for at dette skjer. Noe som kreves for å starte applikasjonen med et vindu der alle grunnleggende vindusfunksjoner virker som de skal.

Hvis vi går tilbake til XAML filen, vil du legge merke til et par interessante attributter innunder Window-elementet, som Title, som definerer vindus-tittel ( vist i tittellinje) såvel som Width og Height attributtene som definerer vindus-dimensjoner ved oppstart. I tillegg er det noen få definsjoner av navneområder (namespaces). Vi vil se nærmere på disse i kapitlene om XAML.

Du vil også legge merke til at Visual Studio har laget til en Grid-kontroll for oss inne i Window-kontrollen. Grid-kontrollen er ett av WPF panelene. Det kunne vært et hvilket som helst panel eller kontroll, men en Window-kontroll kan kun ha EN underkontroll. En Panel-kontroll, som kan inneholde flere underelementer, er vanligvis et godt valg. Senere i dette kurset, skal vi ta en grundigere titt på de forskjellige panelene som er tilgjengelig, da de er spesielt viktige i WPF.

Viktige Window attributter

WPF Window-klassen har en haug med interessante attributter du kan definere for å kontrollere hvordan programvinduet vil se ut og oppføre seg. Her er en kort liste over de mest interessante attributtene:

Icon - Lar deg definere et ikon for vinduet, som typisk vises i hjørnet øverst til venstre, venstre for tittelen til vinduet.

ResizeMode - Denne kontrollerer hvorvidt og hvordan sluttbrukeren kan endre størrelse på vinduet. Standard er CanResize, som lar brukeren endre størrelse på vinduet som et typisk vindu, enten ved å bruke maksimer/minimer-knappene, eller ved å dra i et av hjørnene. CanMinimize lar brukeren minimere vinduet, men ikke maksimere det eller dra det større eller mindre. NoResize er den strengeste, hvor maksimer og minimer knappene er fjernet, og vinduet kan ikke bli dratt større eller mindre.

ShowInTaskbar - Standardverdien er True, men om du setter verdien til False, vil ikke vinduet vise i oppgavelinjen. Dette er nyttig for sekundære vinduer eller applikasjoner som skal minimeres til statusfeltet på oppgavelinjen.

SizeToContent - Bestemmer om vinduet skal skalere seg selv til å automatisk passe sitt innhold. Standardverdien er Manuell (Manual), som betyr at vinduet ikke vil gjøre noen automatisk skalering. De andre valgene er Bredde (Width), høyde (Height) og begge deler (WidthAndHeight). Hver av dem vil automatisk justere vinduets størrelse horisontalt, vertikalt eller i begge retninger.

Topmost - Standardverdien er False, men om du setter verdien til True vil vinduet ditt holde seg over andre vinduer om det ikke er minimert. Dette er bare nyttig i spesielle situasjoner.

WindowStartupLocation - Bestemmer oppstartsposisjonen til vinduet. Standardverdien er Manuell (Manual), som betyr at vinduet vil bli posisjonert i henhold til topp- og venstreverdien til vinduet. Andre alternativer er i senter av eier (CenterOwner), som vil posisjonere vinduet i senter av vinduet det tilhører, senter av skjermen (CenterScreen) som vil posisjonere vinduet i midten på skjermen.

WindowState - Kontrollerer oppstarts-status for vinduet. Det kan være Normal, Maksimert eller Minimert. Standard er Normal, som bør benyttes med mindre du ønsker at vinduet ditt skal starte enten maksimert eller minimert.

Det er forøvrig mange andre attributter, så ta en kikk self og gå videre til neste kapittel.


Table of Contents