TOC

This article is currently in the process of being translated into Hungarian (~99% done).

Egy WPF alkalmazás:

The Window

Amennyiben WPF alkalmazást készítünk, az első dolog amivel találkozni fogunk a 'Window' ( ablak ) osztály. Ez szolgál a fő ablakként ami biztosítja az alapértelmezett keretet, címsort, minimalizáló és maximalizáló valamint bezáró gombot. A WPF ablak kombinációja az XAML ( .xaml ) fájlnak ahol a <Window> elem a gyökér objektum és a c# ( .cs ) forráskódnak. Amennyiben Visual Studio ( express )-t használunk és létrehozunk egy új WPF alkalmazást az létrehozza az alapértelmezett ablakot számunkra ami a következőképpen néz ki:

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

Az x:class tulajdonság megmutatja a XAML fájlnak, hogy melyik osztályt használja, ebben az esetben a Window1, amelyet a Visual Studio hozott létre számunkra. Megtalálhatod a projekt-fában a VS-ben, mint egy leszármatatott csomópontját a XAML fájlnak. Alapméretezetten valahogy így néz ki:

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

Ahogy láthatod a Window1 osztály partial (avagy "részleges") osztályként lett definiálva, ez azért van, mert a XAML fájllal futási időben kombinálva adja meg a teljes ablakot. Ez az, amit meghív a InitializeComponent() metódus, amely azért szükséges, hogy teljeskörűen funkcionáló, működő ablakot kapjunk.

Ha visszamegyünk a XAML fájlhoz, észre fogod venni néhány más érdekes tulajdonságát is a Window elemnek, mint a cím (Title), amely definiállja az ablak címét (a címsávba írt), valamint a kezdeti szélességet (width) és magasságot (height). Valamint néhány más névtér (namespce) definiciót, amiről még szó lesz a XAML fejezetben.

Azt is észreveheted, hogy a Visual Studio létrehozott számunkra a Window-n belül egy Grid control-t. A Grid egy a WPF több panelje közül, és míg a Grid bármennyi további panelt vagy control-t tartalmazhat, a Window-nak csakis EGY gyerekeleme lehet, így általában egy panel, amelynek ugye több gyerekeleme is lehet, általában jó választás a Window közvetlen gyerekelemének. A tutorial későbbi részeiben sokkal részletesebben megnézzük a különböző, WPF-ben használható paneltípusokat, mivel ezek nagyon fontosak a WPF-ben.

Fontos 'Window' tulajdonságok

A WPF 'Window' osztály rendelkezik egy csomó tulajdonsággal amik megszabják a kinézetét és viselkedését az alkalmazás ablakának. A teljesség igénye nélkül, lássunk egy listát a legérdekesebbekről:

Icon - Megadja az ablak ikonját, ami a bal felső sarokban fog megjelenni az ablak címsorában.

ResizeMode - Ez határozza meg mikor és hogyan tudja a felhasználó átméretezni az ablakot. Az alapértelmezett a 'CanResize' ami engedélyezi az átméretezést, mint általában, beleértve a szegélyek megragadását és használhatjuk a maximalizáló és minimalizáló gombokat. A 'CanMinimize' esetén le tudjuk kicsinyíteni az ablakot, de nem használható a maximalizáló gomb és az átméretezés sem megengedett. A 'NoResize' a legszigorúbb, ugyanis a maximalizáló és minimalizáló gombok meg sem jelennek és természetesen az átméretezés is tiltva lesz.

ShowInTaskbar - Az alapértelmezett 'true', de ha átállítjuk 'false'-ra akkor a Windows taskbar-ban nem fog megjelenni. Ez hasznos lehet nem elsődleges ablakok esetén, vagy olyan alkalmazások számára amiket inkább a 'tray'-re akarunk kicsinyíteni és nem pedig a 'taskbar'-ra.

SizeToContent - Eldönti, hogy az ablak automatikusan méreteződjön-e át, hogy elférjen a tartalma. Az alapértelmezett a 'Manual' ( manuális ), ami azt jelenti, hogy az ablak nem méreteződik át automatikusan. További lehetőségek a 'Width', 'Height' és 'WidthAndHeight' amik esetében horizontálisan, vertikálisan vagy mindkét irányban fog az ablak automatikusan átméreteződni.

Topmost - Alapértelmezetten 'false' az értéke, de ha átállítjuk 'true'-ra akkor az ablakunk un. 'TopMost' státuszba kerül, aminek hatására a többi ablak fölött fog mindig megjelenni, kivéve ha minimalizáljuk. Csak speciális esetekben szoktuk használni.

WindowStartupLocation - Az ablak alapértelmezés szerinti megjelenési pozícióját vezérli. Az alapértelmezés a 'Manual' ( manuális ) melynek következtében az ablak pozícióját a 'Top' és 'Left' tulajdonságok határozzák meg. További lehetőségek a 'CenterOwner' ami a szülő ablakhoz képest helyezi középre az ablakot és a 'CenterScreen' ami pedig a képernyőhöz képest.

WindowState - Beállítja a kezdeti állapotot, ami lehet 'Normal', 'Maximized' vagy 'Minimized'. Az alapértelmezett beállítás a 'Normal', amire legtöbbször szükségünk van, ha csak nem akarjuk szándékosan kicsinyítve vagy maximalizálva azt megjeleníteni.

Még számos további beállítási lehetőség / tulajdonság van, aminek utánanézhettek magatok is. Most viszont haladjunk tovább a következő fejezetre.