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í.
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