Перейти к основному содержимому
Версия: 11.0.0

Avalonia XAML

Avalonia UI использует XAML для описания пользовательского интерфейса. XAML — это язык разметки, основанный на XML, который применяется во многих фреймворках пользовательского интерфейса.

к сведению

На этих страницах вы узнаете, как именно XAML используется в Avalonia UI. Для получения общей информации о применении XAML в других технологиях Microsoft, вы можете обратиться к следующим ресурсам:

Расширение файлов AXAML

В то время как стандартное расширение файлов XAML — .xaml, в Avalonia UI используется собственное расширение .axaml (Avalonia XAML) из-за технических особенностей интеграции с Visual Studio.

Формат файла

Пример файла Avalonia XAML:

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="AvaloniaApplication1.MainWindow">
</Window>

Как и в любом XML-документе, в файле есть корневой элемент. В данном примере это <Window></Window>, который определяет тип корневого элемента. Этот элемент соответствует определённому контролу Avalonia UI, в данном случае окну.

Пример выше использует три важных атрибута:

  • xmlns="https://github.com/avaloniaui" — объявляет пространство имён XAML для Avalonia UI. Без него файл не будет распознан как документ Avalonia XAML.
  • xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" — объявляет пространство имён для языка XAML.
  • x:Class="AvaloniaApplication1.MainWindow" — указывает XAML-компилятору, где находится связанный класс для данного файла. Этот класс обычно описывается в C#-файле (code-behind).
к сведению

Подробнее о концепции "code-behind" можно прочитать здесь.

Элементы управления

Вы можете создать пользовательский интерфейс (UI), добавляя XML-элементы, представляющие элементы управления Avalonia UI. Имя элемента совпадает с именем класса контрола.

к сведению

Интерфейс может состоять из множества разных элементов управления. Подробнее о создании сложного интерфейса можно прочитать здесь.

Например, следующий код добавляет кнопку в окно:

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Button>Hello World!</Button>
</Window>
к сведению

Список встроенных контролов Avalonia UI можно найти здесь.

Атрибуты элементов управления

Атрибуты XML-элементов соответствуют свойствам контролов. Свойства можно задать, добавляя атрибуты к элементам.

Например, чтобы задать синий фон для кнопки, добавьте атрибут Background:

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Button Background="Blue">Hello World!</Button>
</Window>

Содержимое элементов управления

Содержимое кнопки в примере выше задаётся строкой "Hello World!", расположенной между открывающим и закрывающим тегами. Альтернативный способ — использование атрибута Content:

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Button Content="Hello World!"/>
</Window>

Это поведение характерно для содержимого элементов управления в Avalonia UI.

Привязка данных

Система привязки данных Avalonia UI позволяет связывать свойства элементов управления с объектами. Это делается с помощью расширения разметки {Binding}. Например:

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Button Content="{Binding Greeting}"/>
</Window>
к сведению

Подробнее о концепции привязки данных можно прочитать здесь.

Файлы "code-behind"

Многие файлы XAML имеют связанный файл "code-behind", обычно написанный на C#, с расширением .xaml.cs.

к сведению

Руководство по программированию с использованием "code-behind" доступно здесь.

Пространства имён XML

В Avalonia XAML можно объявлять пространства имён, как и в любом XML-документе. Это позволяет процессору XML находить определения элементов.

к сведению

Подробнее о пространствах имён XML читайте в документации Microsoft.

Пространства имён добавляются с помощью атрибута xmlns. Формат объявления:

xmlns:alias="definition"

Чаще всего пространства имён объявляют в корневом элементе.

Префикс CLR Namespace

Для ссылок на код в текущей или подключённой сборке используется префикс clr-namespace::

xmlns:myAlias1="clr-namespace:MyNamespace.AppNameSpace.UI"
xmlns:myAlias2="clr-namespace:MyNamespace.OtherAssembly;assembly=OtherAssembly"

Префикс Using

Альтернативный префикс using: позволяет ссылаться на код в текущей сборке:

xmlns:myAlias3="using:MyNamespace.AppNameSpace.UI"