Jemný úvod do XAML

Když jsem o víkendu procházel české weblogy, které znám a zajímají se o technologii .NET, informovali převážně o konferenci PDC2003. Informací bylo spousty a ještě zajímavější bylo číst o všech novinkách, které se na nás valí, ale které nás ještě notnou dávku času nechají v napětí.

Jedním tématem se však u nás nikdo nezabýval a tak to zkusím napravit. Ne, že bych měl nějaké praktické zkušenosti (i když bych velice rád měl). Ale snad jsem správně pochopil oč jde a z příspěvků uveřejněných na PDC se dá leccos vytušit. Navíc tu je MSDN TV a odkaz na Lap Around Longhorn. Ano, znalí už zřejmě tuší, že se v tomto příspěvku chci zabývat prostředím Avalon a jazykem XAML.

Avalon je prezentační prostředí pro nové Windows s kódovým označaním Longhorn. Grafická prezentace pro Avalon je tvořena právě značkovacím jazykem XAML. Kód v pozadí potom určuje funkcionalitu dané aplikace, ta může být napsána v některém z .NET jazyků (já preferuji C#). Toto rozdělení se dá připodobnit současnému stavu, který se používá pro programování ASP.NET aplikací. Nyní se skutečně může použít XAML podobně jako HTML - pro definování vzhledu výsledného formuláře. Ovšem je zde nutné se nenechat zmást a podívat se ještě kousek pod pokličku. XAML je značkovací jazyk jeho vizuální reprezentace je potom prezentována formou vektorů. Můžeme si tedy tento jazyk připodobnit k současnému SVG - i když na mnoha místech se můžete dočíst, že toto přirovnání není přesné - někdy je také označován jako WVG (Window Vector Graphic).

Jedno je asi jisté, "skoro" všechno co lze vyjádřit pomocí XAML lze vytvořit v kódu, opačný proces ale možný není. Když se podíváme na jednoduché okno s tlačítkem, tak jak je prezentované na MSDN, potom vidíme, že jednotlivé značky je možné převést do objektového modelu:

    
 Window window = new Window1(); window.Visible = true; window.Text = "Titulek okna"; Button btn = new Button(); btn.Background = Brushes.LightSeaGreen; btn.FontSize = new FontSize(24, FontSizeType.Point); btn.Content = "Calculate"; 
Důležité je toto:
  • Jednotlivé tagy jsou nazvány stejně jako odpovídající třídy.
  • Atributy odpovídají vlastnostem nebo událostem.
  • Sub elementy mohou být instance jiných tříd či vlastností.
Samozřejmě to má několik výjimek, které by bylo dobré vyzkoušet než o nich budu dál psát (bohužel, zatím nemám Longhorn k dispozici).

Tak jemný úvod do XAML máme za sebou, příště se podíváme kousek dál a v rámci omezených možností si představíme transformace a resources.

Odkazy na okolní weby aneb v angličtině více info:velmi dobrý úvod do tohoto jazyka je na A brief history of XAML a i další články na SimpleGeek a.k.a. Chris Anderson zabývající se XAML. User Interface Design - Longhorn

Add a Comment