Мы решили на регулярной основе рассказывать вам о развитии нашей линейки контролов для Avalonia UI. За время, прошедшее с момента предыдущей публикации, появилось несколько интересных моментов и один новый компонент.
Avalonia 11.1
Наши контролы перешли на новую мажорную версию Avalonia UI, которая вышла недавно.
Avalonia v11.1 вносит улучшения в производительность, UI/UX, поддержку кроссплатформенности, и др.
Больше информации можно найти по ссылке: Avalonia Release 11.1.
Поддержка процессоров Эльбрус
Контролы EmxControls теперь официально поддерживают процессоры Эльбрус. Для отечественных процессоров есть своя версия dotnet. Компания МЦСТ в рамках инициативы по созданию экосистемы открытого ПО открыла исходники форка NET6 для Эльбрус (https://git.openelbrus.ru/mcst/osl/dotnet6/-/tree/orig/src?ref_type=heads).
Мы успешно протестировали работу EmxControls на данном форке и можем заявить о 100%-ной совместимости. Надо честно отметить, что производительность фреймворка и контролов на Эльбрусе несколько медленнее, чем на других процессорах. Однако, если вам нужно быстро создать GUI приложение для Эльбрус, библиотека EmxControls позволит вам сделать это.
Векторные иконки
Для нашей кроссплатформенной САПР DeltaDesign было создано несколько сотен иконок в формате SVG. Все эти иконки теперь входят в состав пакета Eremex.Avalonia.Controls, и доступны пользователям библиотеки EmxControls. Особенно иконки будут полезны тем, кто создает приложения для электронной отрасли.
Чтобы просмотреть иконки или быстро найти нужную в коллекции (например, по имени), мы написали специальный браузер.
![](https://habrastorage.org/getpro/habr/upload_files/987/6a3/206/9876a32062decbd64318909749944a9a.png)
Данный браузер встроен в Демо-приложения в виде отдельного модуля.
При выборе иконки показывается XAML и C# код для ее встраивания, который вы можете скопировать и вставить в ваше Avalonia-приложение.
![](https://habrastorage.org/getpro/habr/upload_files/247/a15/c47/247a15c47779624e5302522a4f900f86.png)
Важный момент в том, что векторные иконки поддерживают адаптивную колоризацию - они одинаково хорошо выглядят в черной и белой темах.
![](https://habrastorage.org/getpro/habr/upload_files/cbf/3ce/b62/cbf3ceb625df25fd40972a424392b93f.png)
Для представления элементов в браузере используется новый компонент - ListViewControl
.
Новый контрол - ListView
Часто в приложениях требуется показать список элементов с иконками и без наподобие GUI в Windows Explorer. Дополнительные пожелания к такому контролу обычно включают группировку и сортировку элементов, фильтрацию, навигацию с клавиатуры и др.
Этот элемент управления понадобился и в графическом интерфейсе САПР Delta Design. Поэтому мы создали новый контрол - ListViewControl
, который по внешнему виду и поведению во многом воспроизводит Windows Explorer. Благодаря использованию шаблонов для элементов списка вы можете реализовать любые представления элементов и гибко настроить внешний вид контрола.
![](https://habrastorage.org/getpro/habr/upload_files/a3a/f0b/255/a3af0b25528d59e0c672fa0b65cf1223.png)
![](https://habrastorage.org/getpro/habr/upload_files/516/d57/7f1/516d577f1fb75bd05e46e080e852d967.png)
Основные возможности включают в себя:
- Размещение элементов в несколько строк с автоматическим переносом или в одну колонку
- Группировка элементов по одному или нескольким полям
- Сортировка элементов по любому количеству полей
- Фильтрация элементов с помощью события
- Клавиатурная навигация
- Выбор элементов с помощью мыши и клавиатуры. Можно запретить выбирать элементы, или разрешить одиночный или множественный выбор.
- Возможность свернуть/распахнуть отдельные группы (при группировке элементов)
- Шаблоны для элементов, позволяющие создавать пользовательские макеты, объединяющие любое число полей и элементов управления.