WPF 2 – Syntax XAML

V dnešnom diely série WPF sa pozrieme na jazyk XAML a jeho Syntax.

Definícia jazyka

Jazyk XAML vychádza z jazyka XML a tak jeho kód musí byť platný aj pre XML. Avšak, XAML rozširuje možnosť XML a tak jeho syntax môže mať odlišný význam.

Základný syntax

Nasledujúca časť popisuje časti, ktoré sú rovnaké v jazykoch XML a HTML a pokiaľ ich ovládate, môžete ju preskočiť.

Syntax jazyka používa rovnaké pravidlá ako XML a teda používa tagy, ktoré sú párové. Vždy sú použité dva tagy, otvárací a uzatvárací. Tag samotný je uzavretý ostrými zátvorkami. Uzatvárací tag sa líši tým, že na jeho začiatku (po ostrej zátvorke) je znak lomeno /.

<MenoTagu>
Obsah tagu
</MenoTagu>

Pokiaľ váš tag nemá žiadny obsah, môžete ho uzavrieť aj nepárovo a to použitím znaku lomeno pred ukončením tagu.

<MenoTagu/>

Tagy môžu (a väčšina ich mať bude) vlastnosti. Tie zadávate priamo do otváracieho tagu (alebo pred lomeno v nepárovom) a oddeľujete ich len medzerami. Ich hodnotu im priradíte znakom rovnása = a vložíte ju do úvodzoviek.

<Label Name="label1">
Obsah
</Label>

Rovnako prebieha aj priraďovanie eventov.

Obsahom tagu, samozrejme môže byť aj ďalší tag.

Objekty v XAML

Ako môžete v predošlom príklade vidieť, v jazyku XAML tagy nemajú (oproti XML) ľubovolné meno, ale meno ovládacieho prvku, ktorý chcete vytvoriť. mená ich vlastností sú potom rovnaké, ako keď s nimi komunikujete v jazyku C#. Vlastnosť Name (alebo x:Name) je určená na výber mena objektu, s ktorým budete v jazyku C# komunikovať.

Pre jednoduchý Label by potom teda mohol byť použitý kód :

<Label x:Name="label" HorizontalAlignment="Left" Margin="119,117,0,0" VerticalAlignment="Top">
Obsah
</Label>

Tento vytvorí Label, z menom label, ktorá bude priradená k ľavej hornej strane nadradeného objektu, zo zarovnaním 119,117,0,0. Jej obsah bude text Obsah. Obsah môžete vložiť aj do vlastnosti Content, potom ním však nemôže byť iný objekt.

Menné priestory

Podobne ako v jazyku C# môžete v XAML používať iné menné priestory, ako ten preddefinovaný. Musíte však na ne vytvoriť odkaz. Základný menný priestor je definovaný ako xmlns, čo znamená Xml Namespace. To vychádza z toho, že xaml je odvodený od jazyka xml.

Na ďalšie menné priestory môžete odkázať priradením nových referencí. To spravíte v hlavnom tagu použitím vlastnosti xmlns:[meno referencie]=“odkaz na menný priestor“.

Odkaz na menný priestor sa môže nachádzať vo vašom projekte, alebo aj na internete.

K objektom nachádzajúcim sa v tomto mennom priestore následne môžete pristupovať napísaním mena referencie, dvojbodky a mena objektu.

Príklad základného okna Hello World.

<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>
        <Label x:Name="label" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Content="Hello World"/>
    </Grid>
</Window>

V kóde môžete vidieť, ako je vytvorený tak pre objekt Window, čo je okno aplikácie, ktorý obsahuje objekt Grid – hlavnú mriežku, ktorá obsahuje Label.

V objekte Window je priradený hlavný menný priestor- xmlns a podradené menné priestory x,d,mclocal.

Okno používa našu vlastnú triedu WebWPF.MainWindow (WebWPF je meno projektu a hlavného menného priestoru), čo je priradené jeho vlastnosti x:Class. Tiež je nastavené, že menný priestor d je ignorovateľný.

Okno má ďalej (v poslednom riadku jeho tagu) nastavený titulok a veľkosti.

Jeho obsahom je nový tag Grid, ktorý nemá žiadne vlastnosti ale obsahuje tag Label.

Label má priradené meno pre komunikáciu, pozíciu (10px z ľava a 10px z vrchu), zarovnanie do ľavého horného rohu a má obsah Hello World.

Následne sú všetky tagy ukončené.

Na záver sa s vami týmto lúčim a nabudúce si ukážeme hlavný control WPF a to Window a všetko, čo obsahuje si rozoberieme ako v designeri, tak v XAML a C#.

Pridajte Komentár

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

Scroll to Top