Odstranění diakritiky
2. OdstraneniDiakritikyWPF
2.2. XAML
Na základě našich zkušeností s XAML bude již stručně popsán postup tvorby formuláře. Základní atributy (titulek, výšku a šířku) formuláře nastavíme následujícím způsobem - viz Kód 1.
Title="Odstranění diakritiky" Height="450" Width="800">
Kód 1: Nastavení atributů formuláře
Objekt typu Grid umístěného na formuláři rozdělíme na 5 řádků. Všechny řádky Grid (kromě čtvrtého), se přizpůsobí obsahu vložených prvků. Výška čtvrtého řádku se bude přizpůsobovat roztažení okna - viz Kód 2.
<Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions>
Kód 2: Rozdělení Grid na řádky
Do prvního řádku Grid (s indexem 0) umístíme objekt typu Label, do něhož umístíme větší tučný nadpis, který horizontálně vystředíme.
<Label Content="Odstranění diakritiky" FontSize="20" FontWeight="Bold" HorizontalAlignment="Center" Margin="0,10"/>
Kód 3: Label - nadpis formuláře
Do druhého řádku Grid umístíme objekt typu GroupBox s titulkem "Vstupní data", do něhož vložíme objekt typu StackPanel. Do tohoto StackPanel vložíme popisek (Label) a objekt typu TextBox, ve kterém uživatel zadá vstupní text, u něhož chce odstranit diakritiku. Tento objekt bude obsahovat text "?", abychom uživateli naznačili, že má zadat vstupní text. Dále nastavíme vnější a vnitřní okraje tohoto objektu TextBox. Písmo bude nastaveno na tučné a text bude zalamován, pokud dojde k překročení šířky tohoto objektu - viz Kód 4.
<GroupBox Header="Vstupní data" Grid.Row="1" Margin="5,10"> <StackPanel Margin="5,10,5,5"> <Label Content="Zadejte vstupní text:" /> <TextBox Name="TxtVstupniText" Text="?" Margin="15,5,5,5" FontSize="14" FontWeight="Bold" Padding="5" TextWrapping="Wrap"/> </StackPanel> </GroupBox>
Kód 4: GroupBox - vstupní data - popisek (Label) včetně objektu vstupního pole pro zadání textu s diakritikou (TextBox)
V dalším řádku Grid bude umístěn objekt StackPanel, do kterého bude rovněž umístěn popisek (Label) a objekt typu TextBox, ve kterém bude uživateli po stisku tlačítka vypsán vstupní text, ale tentokrát bez diakritiky - viz Kód 5. Atributy objektu TextBox nastavíme stejně jako v případě minulého vstupního pole pro zadání textu s diakritikou, ale s tím rozdílem, že bude mít podbarveno pozadí a nepůjde do tohoto objektu vpisovat text (lze pouze kopírovat).
<GroupBox Header="Výstupní data" Grid.Row="2" Margin="5,10"> <StackPanel Margin="5,10,5,5"> <Label Content="Výstupní text bez diakritiky:" /> <TextBox Name="TxtVystupniText" Margin="15,5,5,5" FontSize="14" FontWeight="Bold" Padding="5" IsReadOnly="True" TextWrapping="Wrap" Background="AliceBlue"/> </StackPanel> </GroupBox>
Kód 5: GroupBox - vstupní data - popisek (Label) včetně objektu výstupního pole pro výpis textu bez diakritiky (TextBox)
V posledním řádku se bude nacházet StackPanel, který bude obsahovat dva objekty typu WrapPanel. Do každého objektu typu WrapPanel bude umístěno tlačítko. První WrapPanel, který je vycentrován v horizontální ose, bude obsahovat tlačítko s titulkem Odstranit diakritiku, které po stisknutí spustí metodu, která odstraní diakritiku ze vstupního textu zadaného uživatelem.
Druhé tlačítko Konec, umístěné v druhém WrapPanel, (tento objekt je zarovnán k pravému okraji), bude sloužit pro zavření formuláře.
U obou tlačítek nastavíme vnitřní okraje (vlastnost Padding) a také vnější okraje (vlastnost Margin). Pro obě tlačítka vygenerujeme obsluhu události stisknutí tlačítka (událost Click) pomocí nastavení vlastnosti Click a zvolení položky <New Event Handler> - viz Kód 6.
<StackPanel Grid.Row="4"> <WrapPanel HorizontalAlignment="Center"> <Button Name="BtnOdstranitDiakritiku" Content="Odstranit diakritiku" Margin="5" Padding="10,5" Click="BtnOdstranitDiakritiku_Click"/> </WrapPanel> <WrapPanel HorizontalAlignment="Right"> <Button Name="BtnKonec" Content="Konec" Margin="5" Width="100" Padding="5" Click="BtnKonec_Click"/> </WrapPanel> </StackPanel>
Kód 6: StackPanel obsahující dva WrapPanel s tlačítkem pro odstranění diakritiky a tlačítkem pro zavření formuláře
Výsledný formulář
Navržené rozložení prvků na formuláři, včetně formuláře samotného, je vidět na následujícím obrázku - viz Obrázek 1.

Obrázek 1: Výsledný formulář WPF aplikace
Objekty na formuláři:
Formulář obsahuje následující objekty (kontrolky):
- Grid
- GroupBox
- StackPanel
- WrapPanel
- Label
- TextBox
- TxtVstupniText
- TxtVystupniText
- Button
- BtnOdstranitDiakritiku
- BtnKonec

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