Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

2. diel - Jazyk XAML v VB.NET WPF

V minulom dieli nášho seriálu, Úvod do WPF (Windows Presentation Foundation) , sme si uviedli základné informácie o tejto technológii a vytvorili prvý jednoduchý formulár, ktorý obsahoval iba TextBlock. Tiež sme si hovorili, že možnosti grafického návrhára Visual Studia idú dosť slabé a že preto budeme k návrhu formulárov používať najmä XAML kód.

Práve na ten sa zameriame v dnešnom dieli.

XAML

Už vieme, že jazyk XAML slúži na kódovanie prezentačnej vrstvy aplikácie, laicky povedané v XAML zapisujeme ako má okno aplikácie vyzerať. XAML vychádza z XML, čo je značkovací jazyk navrhnutý tak, aby si do neho každý mohol pridať svoje vlastné značky a používať ho úplne k čomukoľvek. XML je veľmi rozšírené a veľa z vás ho iste pozná napr. Ako XHTML, čo je jeho podoba pre tvorbu webových stránok. Kto viete HTML, máte veľkú výhodu, aj keď narazíme na pár odlišností od XML.

Skratka XML označuje e X tensible M arkup L Anguage, teda rozšíriteľný značkovacie jazyky. XAML potom označuje e X tensible A pplication M arkup L Anguage, teda jednoducho povedané XML so značkami pre tvorbu aplikácií.

Základné charakteristiky

XAML sme už mali možnosť vidieť pri tvorbe minulého príkladu, aj keď ho za nás vygeneroval grafický návrhár Visual Studia. Pre okno s jedným textbox by XAML kód vyzeral asi takto:

<Window x:Class="HelloWPF.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Pozdrav" Height="150" Width="285">
    <Grid>
        <TextBlock HorizontalAlignment="Left" Margin="120,77,0,0" TextWrapping="Wrap" Text="Pozdrav z formuláře" VerticalAlignment="Top"/></TextBlock>

    </Grid>
</Window>

Na tomto jednoduchom príklade si vysvetlíme základné charakteristiky jazyka XML a teda i XAML.

Stromová štruktúra

XML dokument sa skladá z elementov. Štruktúra dokumentu je stromová. To znamená, že elementy v sebe môžu obsahovať ľubovoľné množstvo ďalších elementov a tie zas ďalšie elementy a tak ďalej. Každý XML dokument však obsahuje práve jeden koreňový element, v tom sú ďalej umiestnené ďalšie podelementy. Vkladanie elementov do seba sa hovorí nesting, čo by sa dalo preložiť ako hniezdenia.

Dokument vyššie obsahuje koreňový prvok Window (okno), v ňom je ďalej vložený element Grid (chápte ho ako panel na kontrolky) a v tomto paneli je vložený element TextBlock, čo je nám už známy textový popis.

Pozn .: XML väčšinou obsahuje aj hlavičku, ale tá sa v XAML nepíše.

Elementy

Elementy (niekedy tiež tagy = značky) sa zapisujú do lomených zátvoriek, v ktorých je vždy názov elementu. Každý element je v XML nutné ukončiť (to je rozdiel oproti HTML, kde je ukončenie dobrovoľné). Elementy ukončujeme podľa toho, či sú párové alebo nepárové. Nepárové elementy zapíšeme takto:

<TextBlock />

K ukončeniu nepárového elementu použijeme lomka pred zatváracou lomenou zátvorkou.

Párové elementy ukončíme umiestnením ďalšie značky s názvom elementu, kde je po ľavej lomené zátvorke lomeno. Dovnútra párových elementov sa vkladá obsah alebo ďalšie elementy. Obsah elementom vlastne označíme a pridelíme mu nejaký význam, od toho skratka XML. Nižšie označujeme text "Pozdrav z formulára" a hovoríme, že sa jedná o TextBlock.

<TextBlock>Pozdrav z formuláře</TextBlock>

Obsah môžeme rovnako dobre vložiť i do atribútu. Tie sa zapisujú rovnako u párových aj nepárových elementov a do to úvodzoviek za názov atribútu a znamienko rovnosti:

<TextBlock Text="Pozdrav z formuláře" />

Vidíte, že element TextBlock môžeme zapísať ako párový aj nepárový element a jeho obsah vložiť buď pomocou atribútu alebo ako obsah elementu. Aké sú názvy elementov, ich párovost a atribúty samozrejme určuje špecifikácie konkrétneho jazyka, tu XAML. V ďalších dieloch seriálu si popíšeme tie najzákladnejšie elementy.

Atribútov môže mať každý element ľubovoľné množstvo, jedná sa o vlastnosti daného elementu. Do atribútov nie je možné vložiť ďalšie element, len textovú hodnotu.

Menné priestory

Ak ste dočítali tunajšie objektový seriál o programovaní v VB.NET do konca, viete, že vo Visual Basicu existujú tzv. Menné priestory. Jedná sa vlastne o balíčky, ktoré v sebe obsahujú jednotlivé triedy. Boli uvedené z toho dôvodu, že je v .NET frameworku naozaj obrovské množstvo tried. Bez menných priestorov by musela mať každý trieda unikátny názov a tiež by sme nemohli vytvoriť svoju triedu, ktorá sa volá ako nejaká trieda z .net. Tomuto problému sa hovorí kolízie názvov.

Ak používame menné priestory, uvedieme na začiatku dokumentu ktoré komponenty z ktorých menných priestorov budeme používať. Môžeme tak mať niekoľko komponentov s rovnakým názvom, čo ničomu nevadí, ak používame v jeden čas len jednu z jedného menného priestoru. Pomocou tzv. Aliasov môžeme komponent pre daný dokument dospecifikovat a tak používať viac komponentov s rovnakým názvom v jednej chvíli pod iným označením.

V odseku vyššie som hovoril všeobecne o komponentoch, v VB.NET menné priestory obsahovali najmä triedy, v XML menné priestory samozrejme obsahujú elementy. Mennými priestory teda hovoríme, ktoré "balíčky sa značkami" budeme v dokumente potrebovať. Často sa uvádza príklad XML, kde je element

Budúci diel, Pozíciovanie v VB.NET WPF , bude zas čisto praktický, naučíme sa používať rôzne atribúty elementov a tiež začneme tvoriť zaujímavejšie aplikácie.


 

Predchádzajúci článok
Úvod do WPF (Windows Presentation Foundation)
Všetky články v sekcii
Okenné aplikácie vo VB.NET WPF
Preskočiť článok
(neodporúčame)
Pozíciovanie v VB.NET WPF
Článok pre vás napísal Michal Žůrek - misaz
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje tvorbě aplikací pro počítače, mobilní telefony, mikroprocesory a tvorbě webových stránek a webových aplikací. Nejraději programuje ve Visual Basicu a TypeScript. Ovládá HTML, CSS, JavaScript, TypeScript, C# a Visual Basic.
Aktivity