WPF 3 – Window

V treťom diely zo série Windows Presentation Foundation sa pozrieme na tvorbu a prácu z oknami.

Úvod

WindowInDesigner

Okná vo WPF sú tvorené pomocou triedy Window. Pokiaľ ste už používali Windows Forms alebo čítali našu sériu o Windows Forms, možno si hovoríte, čím je trieda Window odlišná od triedy Form. V prvom rade je vďaka WPF vykresľovaná cez GPU namiesto CPU a tak šetrí výkon a výdrž počítača. Hlavným rozdielom je však prispôsobiteľnosť – vďaka jazyku XAML je možné vytvoriť si, alebo nájsť na internete množstvo šablon, ktoré prispôsobia vzhľad okna, aby vám dokonale vyhovoval (v neskorších dieloch sa na jednu z vytvorených úprav pozrieme).

Dôležitou vlastnosťou okien je to, že sa do nich zmestí najviac jeden ovládací prvok – preto vám generátor automaticky do nového okna vloží nový ovládací prvok – Grid (ten si rozoberieme v budúcom diely).

WindowRunning

Vlastnosti

Okná vo WPF majú niekoľko dôležitých vlastností, ktoré si tu preberieme podľa kategórií. Vlastnosti je možné nastaviť v designéri v okne Properties, v kóde C# alebo v XAML kóde.

Common

  1. Icon – klasická ikona, ktorú vidíte v ľavom hornom rohu okna.
  2. ResizeMode – výber módu zmeny veľkosti. Na výber máte z NoResize – žiadna zmena veľkosti, CanMinimize – je možné minimalizovať, CanResize – je možné meniť veľkosť a CanResizeWithGrip, ktorý zobrazí pomocný bod na zmenu veľkosti.
  3. ShowInTaskbar – rozhoduje o tom, že sa vám okno zobrazí v panely úloh.
  4. Title – výber titulku okna.
  5. TopMost – označuje, či bude okno stále na vrchu.

Appearance

  1. WindowStyle – vyberá vzhľad okraju okna. Môže vyzerať ako klasické okno, mať 3D okraj, alebo fungovať ako panel, tiež je možné okraj okna vypnúť úplne.
  2. AllowsTransparency – Povoľuje priehľadnosť okna. Toto sa používa vždy z vypnutým okrajom okna.

XAML

Okno vo WPF býva (v prípade, že vytvárate okno) skoro vždy hlavným tagom XAML kódu. preto obsahuje definíciu používaných menných priestorov. Tried Window je v XML jedným z mála príkladov, kde je použitá vlastnosť Class XAML, ktorá vyberá, ktorú triedu bude kopírovať. Keďže vaša trieda v C#, ktorá bude ovládať okno, je odvodená od triedy Window, ale Xaml kód používa objekt triedy Window, musíte mu určiť, že ktorá je skutočná trieda, ktorú má používať x:Class=“WebWPF.MainWindow“ . V tomto kóde je naša trieda MainWindow a nachádza sa v mennom priestore WebWPF.

Bežne je v okne nastavený aj titulok a veľkosť.

Title="MainWindow"
Height="350"
Width="525"

Po vytvorení okna je jeho obsahom automaticky prázdny objekt typu Grid a objektu okna sú priradené odkazy na menné priestory :

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WebWPF"
mc:Ignorable="d"

Odkaz xmlns je hlavným menným priestorom a odkazuje na online definíciu priestoru System.Windows a ďalšie. V definícií xaml sú adresy (ako napríklad http://schemas.microsoft.com/winfx/2006/xaml/presentation priradené rôznym menným priestorom. Zaujímavý je však xmlns:local, ktorý obsahuje odkaz na menný priestor nachádzajúci sa vo vašej aplikácií (clr-namespace) a to WebWPF.
Celý kód tak vyzerá nasledovne :

<Window x:Class="WebWPF.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WebWPF"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid/>
</Window>

V tomto kóde môžete upravovať a nastavovať vlastnosti okna. Nabudúce si ukážeme ako sa používa Grid a vysvetlíme si niektoré základné vlastnosti.

Pridajte Komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *


The reCAPTCHA verification period has expired. Please reload the page.

Návrat hore