This article has been localized into Bulgarian by the community.
Базов XAML
В предишната глава говорихме за това какво е XAML и за какво се използва. Сега е време да си зададем следващият въпрос. Как да направим контролен елемент? От примера, който следва се вижда, че за създаването на контролен елемент е необходимо само да му се напише името заобиколено от ъглови скоби. Например за да се създаването на бутон се пише следното:
<Button>
XAML таговете трябва да бъдат затворени със съответния затварящ таг или с дясно наклонена черта и дясна ъглова скоба в края на съответния таг.
<Button></Button>
Или
<Button />
Много от контролите позволяват да им бъде въведено съдържание, между таговете за начало и за край. Например: Контролът за Бутон Ви позволява да зададете текст, който да се показва върху него, между таговете за начало и за край.
<Button>A button</Button>
Когато описвате интернет страница с езика HTML, там не е от значение дали таговете се изписват с голяма или малка буква. При XAML това е от значение, понеже името на контрола , който описваме трябва да отговаря на определен тип от .NET програмната среда. Същото важи и за името на атрибитите който отговарят на описанията на съответния контрол. В примера отдолу се описва допълнително контрола от тип бутон, като добаваме съответните атрибути и им задаваме стойности.
<Button FontWeight="Bold" Content="A button" />
Добавяме особеността (property) FontWeight, което ни дава получер текст и след това установаме особеността Content, която е същата като писането на текст между таговете за начало и за край. Всички атрибути на една "контрола" може да бъдат дефинирани и като дъщерни тагове на основния конрол използвайки Control-Dot-Property описанието:
<Button>
<Button.FontWeight>Bold</Button.FontWeight>
<Button.Content>A button</Button.Content>
</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, който да съдържа различно оцветените текстови блокове. Панелите подобно на WrapPanel играят важна роля в WPF и ние ще ги дискутираме в детайли по-късно; засега мислете за тях като за контейнери с други контроли.
Същият резултат може да бъде постигнат с по-долния запис, който е просто друг начин да направим същото:
<Button FontWeight="Bold">
<WrapPanel>
<TextBlock Foreground="Blue">Multi</TextBlock>
<TextBlock Foreground="Red">Color</TextBlock>
<TextBlock>Button</TextBlock>
</WrapPanel>
</Button>
Код срещу 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 е кратък и стегнат за описание на интерфейси.