This article is currently in the process of being translated into Armenian (~98% done).
Basic XAML
Նախորդ բաժնում մենք նկարագրեցինք, թե ինչ է XAML - ը և ինչի համար է այն օգտագործվում։ Իսկ ինչպե՞ս ստեղծենք բլոկ XAML - ում։ Ինչպես երևում է օրինակում XAML - ում բլոկ ստեղծելը բավականին հեշտ է, անհրաժեշտ է եռանկյուն փակագծերում գրել անվանումը։ Օրինակ՝ կոճակ կարելի ստեղծել հետևյալ կերպ․
<Button>
XAML - ում թագերը պետք է փակվեն՝ թագի վերջում ավելացնելով թեք գիծ կամ ունենալ բացող և փակող թագեր․
<Button></Button>
Կամ
<Button />
Շատ բլոկեր թույլատրում են սկսվող և ավարտվող թագերի միջև ունենալ պարունակություն։ Օրինակ Button բլոկը թույլ է տալիս նշել որևէ տեքստ սկսվող և ավարտվող թագերի միջև․
<Button>A button</Button>
HTML -ում տարրերը կարող են գրվել և՛ մեծատառ, և՛ փոքրատառ, իսկ XAML - ում տարրերի մեծատառ և փոքրատառ լինելու դեպքում կա տարբերություն, քանի որ դրանց անունները պետք է համապատասխանեն .NET framework - ի տիպերի հետ։ Նույնը վերաբերում է նաև ատրիբուտների անուններին, որոնք պետք է համապատասխան լինեն հատկությունների անունների հետ։ Ահա օրինակ, որտեղ մենք սահմանում ենք հատկություններ՝ թեգին ավելացնելով ատրիբուտներ․
<Button FontWeight="Bold" Content="A button" />
Նշում ենք FontWeight հատկությունը, որը դարձնում է տեքստը թավ և այնուհետև նշում ենք Content հատկությունը, որը նույնն է, ինչ պարունակությունը գրենք բացող և փակող թեգերի միջև։ Սակայն բոլոր ատրիբուտները կարող են սահմանվել նման կերպով, երբ դրանք հայտնվում են գլխավոր բլոկի ներքին թեգում՝ օգտագործելով Control-Dot-Property նշագրիչը․
<Button>
<Button.FontWeight>Bold</Button.FontWeight>
<Button.Content>A button</Button.Content>
</Button>
Վերևում մենք ստանում ենք ճիշտ նույն արժեքը և սա միայն գրելաձևի տարբերություն է։ Սակայն շատ բլոկեր թույլ են տալիս ունենալ այլ պարունակություն բացի տեքստից։ Այս օրինակում Button - ի մեջ օգտագործելով մի քանի TextBlock նույն կոճակի վրա նշում ենք տեքստ տարբեր գույներով․
<Button>
<Button.FontWeight>Bold</Button.FontWeight>
<Button.Content>
<WrapPanel>
<TextBlock Foreground="Blue">Multi</TextBlock>
<TextBlock Foreground="Red">Color</TextBlock>
<TextBlock>Button</TextBlock>
</WrapPanel>
</Button.Content>
</Button>
Content հատկությունը թույլ է տալիս ունենալ միայն եզակի ներքին տարր, այդ պատճառով մենք կօգտագործենք WrapPanel տարբեր գույներով տեքստ պահելու համար։ Panel - ները, ինչպես WrapPanel - ը կարևոր նշանակություն ունեն WPF - ում, սակայն մենք մանրամասն կանդրադառնանք դրանց ավելի ուշ, իսկ հիմա մենք կհամարենք Panel - ները որպես կոնտեյներ այլ բլոկերի համար։
Ճիշտ նույն արդյունքին կարելի է հասնել հետևյալ պարզ նշագրիչով․
<Button FontWeight="Bold">
<WrapPanel>
<TextBlock Foreground="Blue">Multi</TextBlock>
<TextBlock Foreground="Red">Color</TextBlock>
<TextBlock>Button</TextBlock>
</WrapPanel>
</Button>
Code vs. XAML
Հուսանք, որ վերևում նշված օրինակները ցույց տվեցին, որ XAML - ը բավականին հեշտ է գրել, և թույլ է տալիս հասնել նույն արդյունքին տարբեր եղանակներով։ Եթե դուք կարծում եք, որ վերը նշված օրինակում տեքստին տարբեր գույներ հաղորդելու համար օգտագործված են շատ նշագրիչներ, ապա այն փորձեք համեմատել իրականացնելով նույնը C# - ի օգնությամբ․
Button btn = new Button();
btn.FontWeight = FontWeights.Bold;
WrapPanel pnl = new WrapPanel();
TextBlock txt = new TextBlock();
txt.Text = "Multi";
txt.Foreground = Brushes.Blue;
pnl.Children.Add(txt);
txt = new TextBlock();
txt.Text = "Color";
txt.Foreground = Brushes.Red;
pnl.Children.Add(txt);
txt = new TextBlock();
txt.Text = "Button";
pnl.Children.Add(txt);
btn.Content = pnl;
pnlMain.Children.Add(btn);
Իհարկե վերը նշված օրինակը կարող է գրվել ավելի կարճ, բայց ես կարծում եմ այնուամենայնիվ XAML - ը բավականին պարզ է հակիրճ ինտերֆեյս նկարագրելու համար։