XAML.cz Magazín moderních technologií založených na XAML

XAML jako deklarativní jazyk

Napsáno pro WPF od Jarda Jirava  [13.01.2010]

V tomto článku se podíváme na to, jakým způsobem je možné zapisovat XAML a jakých nástrojů k tomu můžeme využít.

XAML je deklarativní jazyka, který popisuje vaše UI jako strom souvisejících prvků. Jedná se o popisný jazyk, který mohou využívat nástroje pro návrh UI a těchto nástrojů existuje v současné době několik. Jazyk XAML se vyznačuje tím, že je snadno persistentní – však se také jedná o formát XML. Nástroje od firmy Microsoft pokrývají základní spektrum, potřebné pro vývojáře a designéry uživatelského rozhraní. Jedná se o Visual studio a Expression Blend. Mohli bychom sem zahrnout i nástroj Expression Design. Vedle nástrojů od Microsoftu existují i další nástroje, jako je ZAM 3D, případně některý z méně komplexních, při vývoji však nepostradatelných. XAMLPad nebo KaXaml.

XAML Parser

XAML Parser je zodpovědný za převedení zápisu ve formátu stromu XAML elementů do instancí objektů .NET tříd. V deklaraci XAMLu tak můžeme zapsat jakýkoliv platný objekt .NETu. Nejběžnější scénář je však zápis “Visual” prvků.

V současné době existují čtyři verze XAMLu:

  • WPF – Windows Presentation Foundation
  • Silverlight
  • XPS – fixní dokumenty taktéž produkované v Office
  • Windows Workflow Foundation (WF)

Deklarace XAML

Uvedu zde příklad deklarativního zápisu XAML textu:

<TextBox> je nazýváno jako Object Element. XAML parser v okamžiku zpracování tohoto elementu vytvoří objekt typu System.Windows.Controls.TextBox.

Dále můžeme deklarovat atributy uvnitř elementu TextBox, které odpovídají názvům vlastností dané třídy, v tomto případě můžeme například deklarovat atribut Text, který bude odpovídat stejně nazvané vlastnosti.

Obdobně jako deklarujeme vlastnosti třídy, můžeme deklarovat i eventy a přiřadit jim handlery pro obsluhu těchto události. Můžeme tak namapovat třeba událost Click a vytvořit handler v code behind souboru.

Samozřejmě existují i alternativní zápisy syntaxe v XAML jazyce. Například výše zmíněná deklarace a přiřazení hodnoty do vlastnosti Text můžeme též zapsat takto

<TextBox>
  <TextBox.Text>zde je náš text</TextBox.Text>
</TextBox>

tento zápis je používán některými vizuálními nástroji nebo se s takovýmto zápisem můžeme setkat u komplexních vlastností.

V neposlední řadě se pak můžeme setkat s takovýmto zápisem:

<TextBox Text="{Binding AuthorName}" />

toto představuje zápis tzv. Markup Extension. Tyto Extension se zapisují vždy do složených závorek uvnitř hodnoty atributu. Markup Extension zpřístupňují mnoho mocných vlastností a samozřejmě máme možnost tyto vlastnosti dále rozšiřovat a psát vlastní. V tomto příkladu je uvedena jedna z nejčastějších Extension, BindingExtension, která slouží k synchronizaci dat mezi zdrojovými a cílovými objekty. Dalším místem, kdy se můžeme setkat s využitím Extension je označení a přiřazení stylů a šablon.

Nyní již víme, jak zapisovat jazyk XAML, můžeme se tedy směle vrhnout na další oblasti.

Komentáře

ukládám komentář, vyčkejte prosím..
  1. Buďte první, kdo napíše komentář.

@xamlcz

  • RT @jvanrhyn: XAML, It's a bit like olives. Takes a while to get used to. But once you're used to it. It is actually pretty good. <3 XAML
  • RT @moser_christian: WPF Inspector 0.9.7 is released. It supports .NET 3.5 and 4.0 The project is now open source and available on CodeP ...
  • Jeff Handley oznámil vydání WCF RIA Services v.1.0 SP1 RTM http://bit.ly/gOgckn ke stažení na http://bit.ly/gVAXdK
  • jedna výzva pro Brno. Byl někdo z vás na přednášce o RIA v MS Akvárku? Dejte o sobě vědět. Děkuji
  • také jste uvažovali o tom, že zkusíte na projekt použít Caliburn Micro nebo naopak Prism 4? A co tak obojí, šlo by to nebo ne? Již brzy