2. HelloWPF

2.2. XAML

Technologie WPF používá tzv. rozšiřitelný značkovací jazyk XAML (eXtensible Application Markup Language), který slouží primárně pro tvorbu grafického rozhraní aplikací. 

Jak již známe z minulého příkladu, při spuštění VS se nám automaticky spustí okno, ve kterém si zvolíme, jaký typ aplikace budeme vytvářet. V tomto okně však nyní nebudeme filtrovat typ jazyku, platformu, nebo typ projektu, ale vepíšeme do pole pro vyhledávání (obdélník umístěný v horní části okna) text: wpf - viz Obrázek 1. Provede se následně filtrování všech možných typů projektů založených na WPF. 


Obrázek 1: VS - výběr programovacího jazyku a typu aplikace

My budeme využívat při tvorbě aplikace prostředí .NET Framework. Zvolíme tedy položku WPF App (.NET Framework)  - nikoliv .NET Core, ani .NET Standard - viz Obrázek 2.


Obrázek 2: VS - výběr WPF aplikace .NET_Framework

V okně konfigurace našeho nového projektu zadáme v poli názvu projektu Project name = HelloWPF. Dále klikneme na tlačítko Create - viz Obrázek 3. 


Obrázek 3: VS - konfigurace nového projektu

Nový projekt obsahuje různé soubory (jejich seznam ve formě stromové struktury nalezneme v Solution Exploreru). My se nyní zaměříme na soubor MainWindow.xaml. V horní části VS je okno grafického designeru (v horní části okna VS je zvolena záložka MainWindow.xaml), kde je vidět grafický návrh formuláře založeného na XAML. V levé části VS jsou umístěny záložky, Toolbox (slouží pro vložení prvků na formulář) a Document Outline (seznam prvků na formuláři). Tyto záložky využijeme později. Pokud označíte (kliknete) na formulář v grafickém designeru, v pravé dolní části VS se vám zobrazí panel vlastností zvoleného objektu - Properties - viz Obrázek 4. 

VS_GUI_Popis

Obrázek 4: VS - GUI - popis prostředí

XAML kód umístěný v souboru MainWindow.xaml nalezneme v dolním okně, kde je zobrazeno rozložení našeho formuláře v jazyce XAML, tj. všechny prvky, které náš formulář obsahuje - viz Kód 1.

<Window x:Class="HelloWPF.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:HelloWPF"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        
    </Grid>
</Window>

Kód 1: XAML kód formuláře - Window

Prvním prvkem je okno, které uvozuje značka <Window> a další koncová značka </Window> uvozuje konec specifikace okna. Toto okno aplikace je primárně spuštěno jako první, když aplikaci spustíme. 

Okno má své atributy, které lze nastavit jako je např. titulek Title, výška Height a šířka Width. Pro nastavení vlastností můžeme použít přímo XAML kód, nebo okno Properties. 

K jednoznačnému výběr prvku na formuláři použijeme okno Document Outline (umístěného v levém panelu VS) ve kterém nalezneme seznam prvků našeho formuláře - viz Obrázek 5.

VS_Okno_Document_Outline

Obrázek 5: VS - okno Document Outline - seznam prvků na formuláři

Pro výběr samotného okna klikneme na Window. Po té nastavíme vlastnosti tohoto vybraného okna v okně Properties - viz Obrázek 6. V tomto okně nastavíme ve skupině Common vlastnost Title = "HelloWPF".  

VS_Okno_Properties_nastaveni_vlastnosti

Obrázek 6: VS - okno Properties - nastavení vlastností formuláře

V okně XAML kódu vidíme, že mezi značkami okna se provedla změna kódu titulku (záhlaví) formuláře.

Title="HelloWPF" 

Kód 2: Nastavení vlastnosti Title - titulku formuláře

V okně XAML kódu také vidíme, že mezi značky pro okno (<Window></Window>) je vložen tzv. mřížkový panel <Grid> </Grid> na formuláři, do kterého se umísťují ovládací prvky - kontrolky (anglicky Controls). 

Pro zobrazení textu "Hello, World!" použijeme kontrolku typu TextBlock, kterou vložíme do Gridu na formuláři pomocí okna panelu nástrojů - Toolbox. Kontrolku nalezneme ve skupině Common WPF Controls - viz Obrázek 7. 

VS_Okno_Toolbox_TextBlock

Obrázek 7: VS - okno Toolbox - kontrolka TextBlock

Vložení kontrolky provedeme přetažením zvolené kontrolky v Toolboxu  na formulář v grafickém designeru (souřadnice umístění kontrolky závisí na poloze, kam jsme umístili kontrolku na formulář - v našem případu se jedná o souřadnice 278, 188). Pokud chceme zvětšit vložený TextBlock umístíme kurzor na hranu (nebo na střed hrany) TextBlocku a přidržením levého tlačítka myši roztáhneme na požadovanou velikost - viz Obrázek 8.

VS_Graficky_designer_Formular_Textblock

Obrázek 8: VS - grafický designer formuláře - kontrolka Textblock

Umístění kontrolky na formulář způsobí změnu XAML kódu, který do mezních značek Gridu umístil kód pro generování kontrolky typu TextBlock.

<TextBlock HorizontalAlignment="Left" Margin="278,188,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top"/>

Kód 3: Nastavení vlastností kontrolky TextBlock

Došlo zároveň pomocí XAML k nastavení vlastností kontrolky:

  • HorizontalAlignment - horizontální zarovnání vůči okraji, k nimž je kontrolka připojena
  • Margin - nastavení vnějších okrajů okolo kontrolky
  • TextWrapping - režim zalamování textu v případě využití víceřádkového textu
  • Text - text, který má být zobrazen
  • VerticalAlignment - vertikální zarovnání vůči okraji, k nimž je kontrolka připojena

Nyní si nastavíme ve skupině Text  velikost písma na 40 px u námi vloženého TextBlock - viz Obrázek 9. 

VS_Okno_Properties_nastaveni_Text_velikost_pisma

Obrázek 9: VS - okno Properties - nastavení vlastnosti Text - velikost písma

Jako poslední krok provedeme nastavení vlastnosti Text = "Hello, World!" a tím se nám zobrazí ve vloženého TextBlock požadovaný text - viz Obrázek 10.

VS_Okno_Properties_nastaveni_Common_Text

Obrázek 10: VS - okno Properties - nastavení vlastnosti Common - Text

Gratuluji, Vaše první aplikace ve WPF je hotová - viz Obrázek 11. 

VS_Graficky_designer_Formular_Vyplneny_Textblock

Obrázek 11: VS - grafický designer - formulář - vyplněný Textblock


Objekty na formuláři

Formulář obsahuje následující objekty (kontrolky). Jejich přehled získáte v okně Document Outline ve Visual Studio - viz Obrázek 11:

  • Grid
  • TextBlock


Obrázek 12: VS - okno Document Outline - seznam objektů