Avalonia XAML
Avalonia UI использует XAML для описания пользовательского интерфейса. XAML — это язык разметки, основанный на XML, который применяется во многих фреймворках пользовательского интерфейса.
Расширение файлов 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>