TOC

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

A WPF application:

The Window

Pirmas dalykas su kuriuo susidursite kuriant WPF aplikacija - "Window" klasė. Ši klasė yra programos lango pagrindas, bei suteikia standartinį langą su pagrindiniais mygtukai. WPF window elementas yra XAML (.xaml) failo, kuriame <Window> elementas yra pagrindas (tėvinis elementas), bei backend'o (.cs) failo kombinacija. Jei naudoji Visual Studio (Express), bei sukuri naują WPF aplikaciją, VS sukurs numnatytajį (default'inį) langą, kuris atrodys maždaug taip.

<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 atributas nurodo XAML failui kurią klasę naudoti, šiuo atvieju Window1, kurią taip pat automatiškai sukūrė Visual Studio. Šia klasę rasi projekto medyje kaip XAML failo vaiko elementą (išskleidus xaml failą). Pagal nutylėjimą tai atrodo maždaug taip:

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

Kaip matai Window1 klasė yra apibrėžta kaip dalinė (angl.: "partial") nes programos vykdymo metu ji yra sujungiama su XAML failu. Tai atlieka "InitializeComponent()" metodas iškviečiamas šios dalinės klasės konstruktoriuje, todėl pilnai veikiantis langas yra privalomas.

Jei sugrįšime prie XAML failo, pastebėsi dar keletą įdomių Window elemento atributų, tokių kaip Title, kuris apibrėže lango pavadinimą, taip pat plotį ir aukštį programos paleidimo metu. Taip pat keletas "namespace" apibrėžimų kuriuos aptarsime XAML skyriuose.

Kaip matai, Visual Studio Window elemente taip pat sukūrė Grid elementą. Grid yra viena iš WPF panelių ir nors tai galėtų būti bet kuri panelė ar elementas Window elementas gali turėti tik VIENĄ vaiko elementą, todėl Panelė kurioje galima patalpinti daug valdiklių yra geras pasirinkimas. . Tolesnėse pamokose apžvelgsime daugiau Panelių nes jos yra itin svarbios WPF aplikacijoje.

Svarbios Window ypatybės

WPF Window UI elemento klasė turi daugybę įdomių atributų kurių pagalba galima keisti lango išvaizdą ir valdymą. Šiame saraše pateiksime pačius įdomiausius:

Icon - Leidžia apibrėžti lango ikoną, kuri paprastai yra rodoma viršutiniame kairiam kampe į kairę nuo pavadinimo.

ResizeMode - Šis atributas apibrėže ar vartotojas gali keisti lango dydi, jei taip kaip jis gali jį keisti. Pagal nutylėjimą yra nustatyta "CanResize". Šis pasirinkimas leidžia keisti lango dydį. "CanMinimize" - leidžia minimizuoti langą, tačiau neleidžia jo maksimizuoti ar keisti jo dydį traukiant su pele. "NoResize" - pats griežčiausias rėžimas kuris neleidžia nei minimalizuoti, nei maksimizuoti lango, nei keisti jo dydžio traukiant su pele.

ShowInTaskbar - Pagal nutylėjimą nustatyta "true", tačiau jei bus nustatyta į "false" programa nebus rodoma Windows užduočių juostoje (apačioje). Naudingas atributas ne pirminiams langams arba aplikacijoms kurios neturėtų būti matomos.

SizeToContent - Nustato ar langas turėtų automatiškai pakeisti savo dydį kad tilptų visas jo turinys. Pagal nutylėjima yra nustatyta "Manual" kas reiškia jog lango dydis nebus keičiamas automatiškai. Kitos parinktys: "Width", "Height" ir "WidthAndHeight" kurios atitinkamai leis keisti lango plotį, aukštį arba abu.

Topmost - Pagal nutylėjimą nustatyta "false", bet jei nustatyta į "true" programos langas laikysis priekyje visų kitų langų nebent bus minimizuotas. Naudingas nebent ypatingom aplinkybėm.

WindowStartupLocation- Valdo pradinę lango poziciją. Pagal nutylėjimą nustatyta "Manual", kas reiškia jog langas pradžioje bus pozicionuotas pagal "Top" ir "Left" window UI elemento atributus. Kiti pasirinkimai yra "CenterOwner" kuris pozicionuos langą tėvinio elemento centre bei "CenterScreen" - pozicionuos lkangą ekrano centre.

WindowState - Valdo pradinę lango būseną. Ji gali būti arba Normali, Maksimizuota arba Minimizuota. Pagal nutylėjimą yra normali.

Tačiau čia dar ne viskas, yra daugybė kitų atributų tad apžvelk juos pats (juos rasi dokumentacijose) ir tada keliauk prie sekančių skyrių.