This article is currently in the process of being translated into Hungarian (~99% done).
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.