Teorie: Popis základních kontrolek na WPF formuláři
(Dílčí příklady jsou převzaty z https://wpf-tutorial.com/ )
Jakým způsobem se pracuje s jednotlivými kontrolkami bylo vysvětleno u prvního příkladu v rámci cvičení. Doporučujeme se nejprve podívat na tento příklad.
1. Shrnutí základních poznatků
(Dílčí příklady jsou převzaty z https://wpf-tutorial.com/ )
Jakým způsobem se pracuje s jednotlivými kontrolkami bylo vysvětleno u prvního příkladu v rámci cvičení. Doporučujeme se nejprve podívat na tento příklad. Tuto kapitolu lze také použít jako referenci (tj. v tento okamžik se seznámit s obsahem a během zpracovávání příkladů se k této kapitole vracet).
Shrňme si základní poznatky:
- Pro design formulářů ve WPF je používán značkovací jazyk XAML (eXtensible Application Markup Language)
- XAML je ve svých základních rysech obdobný jazyku HTML, který se využívá pro webové stránky, nebo XML, který se využívá k identifikaci a strukturování dat (např. elektronicky zpracovávané/přenášené údaje formulářů)
- Na formuláři (Window) mohou být umístěny různé kontrolky. Tyto kontrolky mohou být libovolně vnořené (kontrolka může být kontejnerem pro jinou kontrolku)
- Formálně se tyto kontrolky do XAML zapisují pomocí značek – Tagů. Pro zahájení definice kontrolky je definován tag uvedený ve špičatých závorkách, tj např. <TextBlock>. Pro ukončení definice kontrolky také existuje tag ukončovací s lomítkem </TextBlock>
- V rámci tagu mohou být definovány vlastnosti (properties) kontrolky, např. <TextBlock Text=”ahoj” Width=”100”> znamená, že v kontrolce textový blok bude text ahoj s šířkou 100. Zápis tohoto tagu je potřeba v XAML ukončit ukončovacím tagem, zde </TextBlock>
- Dílčí kontrolky mají jednu vlastnost výchozí. Její hodnotu je možné napsat mezi zahajovací tag a ukončovací tag. U TextBlocku je to vlastnost Text, tedy např.: <TextBlock>ahoj</TextBlock> je to samé jako <TextBlock Text=”ahoj”></TextBlock>
- Pokud mezi zahajovací a ukončovací tag nechceme nic napsat, je možné místo <TextBlock Text=”ahoj”></TextBlock> napsat jen <TextBlock Text=”ahoj”/>
- Další možnost zápisu je pomocí tečkové notace. To je velmi užitečné pro komplexní vlastnosti (zde se jedná jen o „školní“ ukázku, ale následně budeme tuto formu využívat):
<TextBlock>
<TextBlock.Text>
Ahoj
</TextBlock.Text>
<TextBlock.Width>
100
</TextBlock.Width>
</TextBlock>
- Veškerý kód je „case sensitive“, tj. je citlivý na malá a velká písmena – je nutné dbát na dodržování velkých a malých písmen
- Veškeré kontrolky jsou v kódu ve skutečnosti třídy – tj. šablony kontrolek, které mají určité předdefinované vlastnosti a chování. V okamžiku, kdy kontrolku využijeme, vytváří se její instance – tj. konkretizace (např. Bankomat je třída, je v ní popsáno chování, ale Bankomat na Americké ulici je instance třídy – tento bankomat má konkrétní vlastnosti)
- Každá vlastnost je určitého datového typu, např. Text je string a Width je int. U vlastností jsou využívány i složité datové typy.