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

net-technology
Posted by: Jarda Jirava
Last revised: 03 Nov, 2003 02:59 PM History

Comments

No comments yet. Be the first!

Your Comments

Used for your gravatar. Not required. Will not be public.
Posting code? Indent it by four spaces to make it look nice. Learn more about Markdown.

Preview