Синтаксис XAML

На основе XML определяет набор тегов и атрибутов, представляющих объекты интерфейса и их презентации.

Синтаксис XML

XAML - язык тегов, производный от XML. Графические компоненты определяются открытыми или закрытыми тегами с атрибутами.

Пример тега с содержимым:

<TextBlock>
  Un texte
</TextBlock> 

и без содержания:

<TextBlock />

Атрибуты подобны переменным, назначаемым значением. В XML эти значения заключены в кавычки, в отличие от содержимого текста или одного или нескольких других тегов.
Например, мы задаем имя t1 с атрибутом Name :

<TextBlock Name="t1" />

<TextBlock Name="t1">
  Un texte
</TextBlock>

Видно, что теги могут содержать другие теги, и даже атрибуты могут стать тегами или наоборот, например:

<TextBlock Text="Un texte" /> 

Синтаксис свойств

Свойство объекта, под которым подразумевается то, что его характеризует, может быть записано в виде атрибута. Например, свойство цвета фона прямоугольника записывается с атрибутом Fill:

<Rectangle Fill="Red" /> 

Для описания сложных свойств XAML имеет альтернативный формат под названием «Property element syntax» (синтаксис элемента свойства), расширяющий синтаксис XML и придающий точке новое значение.
В XML значение атрибута должно быть строкой. В XAML это может быть еще один объект языка.
Но объект не присваивается напрямую атрибуту со знаком равенства, его связывают с точкой по синтаксису, свойственному XAML, которая имеет форму:

nomElement.nomPropriété

Рассмотрим пример объекта Rectangle и свойство Fill, которое является цветом заливки, атрибут преобразуется в теги:

<Rectangle> 
  <Rectangle.Fill>
  </Rectangle.Fill>
</Button>

Для добавления тегов и атрибутов к свойству Fill, например текстуры, выполненной с фотографией, что будет показано в этом руководстве.

Другой пример представлен спецификацией языка, то есть кнопкой, с которой связан раскрывающийся список:

<Button>
  <Button.ContextMenu>
    <ContextMenu>
      <MenuItem>
          Ouvrir
      </MenuItem>
      <MenuItem>
          Fermer
      </MenuItem>
    </ContextMenu>
  </Button.ContextMenu>
</Button>

Видно, что КонтексттМеню, представляющее собой список меню, становится свойством кнопки благодаря «Button.КонтексттоМеню», и заявляет о себе внутри описания кнопки.

Содержимое тега можно рассматривать как свойство. Таким образом, текст кнопки является свойством, которое записывается в содержимое или как значение атрибута Текст или Содержимое в зависимости от объекта:

<TextBlock Text="Un texte" />

Пространства имен

Пространства имен задаются в качестве атрибутов самого глобального контейнера в файле XAML, Canvas, Windows или Page. Это заданные URL-адреса, которые будут приведены в примерах и соответствуют типу определения XAML.
Пример :

<Canvas
  xmlns="http://schemas.microsoft.com/client/2007" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">  

Для пространств имен, отличных от пространства по умолчанию (первая строка), перед каждым элементом этого пространства имен должен стоять префикс (как x выше). В данном случае мы поставим:

x:nomElement

для каждого элемента пространства имен x.

Прикрепленные свойства

Это концепция XAML. Синтаксис такой же, как для элементов свойства, показанных выше, имя свойства связывается с именем типа (а не с именем элемента, таким как Button).

nomType.nomPropriété

Цель - добавить свойства к типу. Элементы этого типа могут иметь такие свойства.

Связанные события

В XAML можно определить событие по типу, в то время как обработчики событий будут присоединены к объектам, представленным тегами (например, Button). Синтаксис всегда один и тот же:

nomType.nomEvènement   

Расширить язык

Расширить язык XAML можно с помощью особого синтаксиса: между {} помещается расширение, состоящее из имени класса, за которым следует экземпляр.
Пример, взятый из спецификации языка:

<TextBlock Style="{StaticResource MonStyle}">
  Un texte
</TextBlock>

Класс StaticResource содержит добавленные определения, а экземпляр MonStyle становится свойством кнопки. Мы сможем использовать Button.MonStyle в определении кнопки и воспользоваться новыми возможностями, реализованными в классе.

Корневые характеристики и теги: Canvas, Page, Application

.

Чувствительность к регистру

Пробелы

Корневой тег

Дополнительная информация