TOC

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

A WPF application:

The Window

Prilikom izrade WPF aplikacije, prva stvar koju ćete susresti je klasa Window. Služi kao korijen prozora i pruža vam standardni okvir, naslovnu traku i gumbe za povećavanje, minimiziranje i zatvaranje. WPF prozor je kombinacija XAML (.xaml) datoteke, gdje <Window> element je korijen, a CodeBehind (.cs) datoteka. Ako koristite Visual Studio (Express) i stvorite novu WPF aplikaciju, ona će za vas stvoriti zadani prozor koji će izgledati otprilike ovako:

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

Atribut x:class govori XAML datoteci koju klasu treba koristiti, u ovom slučaju Window1, koju je Visual Studio također stvorio za nas. Naći ćete ga u stablu projekta u VS-u, kao podređeni čvor XAML datoteke. Prema zadanim postavkama izgleda otprilike ovako:

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

Kao što vidite, klasa Window1 definirana je kao djelomična, jer se kombinira s vašom XAML datotekom u vremenu izvođenja kako bi vam dala cijeli prozor. To je zapravo ono što poziv InitializeComponent() radi, zbog čega je potreban da bi se pokrenuo potpuno funkcionalan prozor.

Ako se vratimo na XAML datoteku, primijetit ćete nekoliko drugih zanimljivih atributa na elementu Window, kao što je Title, koji definira naslov prozora (prikazan u naslovnoj traci), kao i početnu širinu i visinu. Također postoji nekoliko definicija prostora imena, o kojima ćemo govoriti u poglavljima o XAML-u.

Također ćete primijetiti da je Visual Studio stvorio Grid kontrolu za nas unutar prozora. Mreža je jedna od WPF ploča, i iako može biti bilo koja ploča ili kontrola, prozor može imati samo JEDNU podređenu kontrolu, tako da je ploča, koja pak može sadržavati više podređenih kontrola, obično dobar izbor. Kasnije u ovom tutorialu, pobliže ćemo pogledati različite vrste panela koje možete koristiti, budući da su vrlo važni u WPF-u.

Važna svojstva prozora

Klasa WPF Window ima hrpu zanimljivih atributa koje možete postaviti za kontrolu izgleda i ponašanja prozora vaše aplikacije. Evo kratkog popisa najzanimljivijih:

Icon - Omogućuje definiranje ikone prozora, koja se obično prikazuje u gornjem lijevom kutu, lijevo od naslova prozora.

ResizeMode - Ovo kontrolira može li i kako krajnji korisnik promijeniti veličinu vašeg prozora. Zadana je CanResize, koja korisniku omogućuje promjenu veličine prozora kao i bilo kojeg drugog prozora, bilo pomoću gumba za povećavanje/minimiziranje ili povlačenjem jednog od rubova. CanMinimize će omogućiti korisniku da minimizira prozor, ali ne i da ga maksimizira ili povuče na veće ili manje. NoResize je najstroži, gdje su gumbi za povećavanje i minimiziranje uklonjeni i prozor se ne može povlačiti za povećanje ili smanjenje.

ShowInTaskbar - Zadana postavka je true, ali ako je postavite na false, vaš prozor neće biti predstavljen na programskoj traci Windowsa. Korisno za prozore koji nisu primarni ili za aplikacije koje bi se trebale minimizirati u programsku traku.

SizeToContent - Odlučite treba li prozor sam promijeniti veličinu kako bi automatski odgovarao njegovom sadržaju. Zadana postavka je Ručno, što znači da se veličina prozora ne mijenja automatski. Ostale opcije su Width, Height i WidthAndHeight, a svaka od njih će automatski prilagoditi veličinu prozora vodoravno, okomito ili oboje.

Topmost - Zadana postavka je false, ali ako je postavljena na true, vaš će prozor ostati na vrhu ostalih prozora osim ako se ne minimizira. Korisno samo u posebnim situacijama.

WindowStartupLocation - kontrolira početni položaj vašeg prozora. Zadana postavka je Ručno, što znači da će prozor biti inicijalno postavljen prema svojstvima Gornje i Lijevo vašeg prozora. Druge opcije su CenterOwner, koja će pozicionirati prozor u središte vlastitog prozora, i CenterScreen, koja će pozicionirati prozor u središte zaslona.

WindowState - Kontrolira početno stanje prozora. Može biti Normal, Maximized ili Minimized. Zadana postavka je Normal, što biste trebali koristiti osim ako ne želite da vaš prozor počne uvećan ili minimiziran.

Međutim, postoji mnogo drugih atributa, stoga pogledajte sami i prijeđite na sljedeće poglavlje.