TOC

This article has been localized into Dutch by the community.

Een WPF applicatie:

De Window klasse

Bij het creëren van een WPF applicatie, is het eerste dat je tegenkomt de Window klasse. Deze klasse is de basis voor een venster [window], en bestaat uit een standaard kader, titelbalk en de knoppen voor minimaliseren, maximaliseren en sluiten. Een WPF venster bestaat uit een XAML (*.xaml) bestand, waar het <Window> element het hoofdelement is, en een code-behind (*.cs) bestand. Als je Visual Studio (Express) gebruikt en een nieuwe WPF applicatie maakt, wordt er een standaard venster gegenereerd. Zo ziet dat er ongeveer uit:

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

Het x:class attribuut definieert de klasse voor het XAML bestand, in dit geval Window1, welke Visual Studio ook voor ons heeft gegenereerd. Dit bestand vind je in de bestandsboom van het project in VS, als een subonderdeel van het XAML bestand. Standaard ziet het er ongeveer zo uit:

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

Zoals je ziet is de Window1 klasse gedefiniëerd als partial, omdat deze tijdens runtime gecombineerd wordt met het XAML bestand om het volledige venster te vormen. De aanroep van InitializeComponent() is hiervoor verantwoordelijk, en daarom vereist om een volledig werkend venster aan de gang te krijgen.

Als we teruggaan naar het XAML bestand, zie je nog een aantal interessante attributen voor het Window element, zoals Title [Titel], waar de titel van het venster wordt gedefinieerd (te zien in de titelbalk) en de Width [Breedte] en Height [Hoogte] van het venster bij het opstarten. Daarnaast worden er een aantal namespaces gedefinieerd; daar komen we later op terug.

Daarnaast zul je zien dat Visual Studio een Grid-element heeft gegenereerd in het Venster. Het Grid is één van de WPF panel-elementen. Hoewel elk panel- of control-element hier had kunnen staan, een Window mag maar één enkel subelement bevatten. Daarom is een panel-element, welke zelf wel meerdere subelementen mag bevatten, meestal de goede keuze. We laten verderop in deze tutorial zien welke verschillende panel-elementen er nog meer zijn en wat de specifieke toepassingen zijn, aangezien dit belangrijke WPF onderdelen zijn.

Belangrijke eigenschappen van Window

De WPF Window klasse heeft een heleboel interessante attributen die je kan instellen om het uiterlijk en gedrag van je applicatie window te bepalen. Ziehier een korte lijst van de meest interessante attributen:

Icon - Dit attribuut laat je toe om het icoontje (pictogram) van een window te definieren. Dit is meestal zichtbaar in de linker bovenhoek, juist voor de titel van het window.

ResizeMode - Deze bepaalt of en hoe de eindgebruiker de grootte van je window kan veranderen. De default waarde is CanResize, deze laat de gebruiker toe om het van grootte te veranderen als eender ander window -- door de maximize/minimize knoppen te gebruiken of door de randen te verplaatsen. NoResize is de meest strikte waarde, waarbij de maximize/minimize knoppen verwijderd zijn en de randen niet verplaatst kunnen worden.

ShowInTaskbar - De default waarde is 'true', maar als je 'false' invult zal de window niet zichtbaar zijn in de Windows taskbar. Bruikbaar bij niet-primaire windows of bij applicaties die enkel in de tray zichtbaar zijn.

SizeToContent - Beslist of het window zichzelf van grootte verandert zodat de inhoud er net in past. De default waarde is 'Manual', dit wil zeggen dat het window niet vanzelf van grootte verandert. Andere mogelijkheden zijn 'Width', 'Height' en 'WidthAndHeight', waarbij de grootte horizontaal, verticaal of beide wordt/worden aangepast.

Topmost - De default is 'false', maar als deze of 'true' wordt gezet zal je Window boven andere windows zichtbaar zijn, tenzij het window geminimaliseerd is. Enkel bruikbaar in speciale gevallen.

WindowStartupLocation - Bepaalt de initiële positie van het window. De default waarde is 'Manual', dit betekent dat het window initieel gepositioneerd wordt op de 'Top' en 'Left' attributen van je window. Andere opties zijn 'CenterOwner', waarbij het window in het midden van zijn eigenaar-window wordt gepositioneerd. 'CenterScreen' daarentegen zal het window in het midden van het scherm positioneren.

WindowState - Bepaalt de initiele toestand van het window. Het kan 'Normal', 'Maximized' of 'Minimized' zijn. De default waarde is 'Normal', dit moet je gebruiken tenzij je wil dat je window van begin af aan maximaal of minimaal wordt weergegeven.

Er zijn echter een heleboel andere attributen, bekijk ze zelf eens om dan door te gaan naar het volgende hoofdstuk.