Мой блог
Обзор обновления 1.5 библиотеки EMX Controls для Avalonia UI
Опубликован релиз предварительной версии библиотеки контролов EMX Controls для Avalonia UI версии 1.5. Разработчики добавили востребованную функциональность вычисления итогов в таблицы, расширили палитры визуальных тем, внедрили сервисы для управления окнами во ViewModel и улучшили инструменты тестирования.
Новое обновление приносит разработчикам кроссплатформенных интерфейсов множество практических улучшений, включая аппаратный рендеринг графики на macOS, специализированные шаблоны проектов dotnet new и открытую документацию для интеграции с AI-ассистентами.





Итоги (Summary) в контролах Data Grid и Tree List
Интерактивные табличные компоненты Data Grid и Tree List, предназначенные для работы с плоскими и иерархическими списками, обзавелись встроенным инструментом вычисления итогов. Теперь пользователи могут выполнять базовый математический анализ прямо в интерфейсе приложения.
Доступные варианты вычислений
Система поддерживает стандартные алгоритмы «из коробки»: автоматическое суммирование, определение минимального и максимального значений, расчет среднего арифметического, а также подсчет общего количества записей. Для нестандартных задач предусмотрено специальное событие CustomSummary, позволяющее реализовать собственный алгоритм обработки данных. Кроме того, допускается вычисление нескольких итоговых значений для одной колонки с возможностью их вывода в совершенно другом столбце табличного представления.

Управление в рантайме
Интерфейс позволяет конечным пользователям самостоятельно настраивать итоговые показатели. С помощью специальной кнопки с символом сигмы открывается выпадающий список доступных операций, а для более тонкой конфигурации порядка и расположения элементов предусмотрен отдельный графический редактор. В текущем превью-выпуске расчет итогов доступен по всем записям, а в скором времени разработчики обещают добавить вычисление по группам строк в Data Grid.

Палитры для визуальной темы
Визуальная тема графических компонентов теперь включает расширенный набор цветовых схем. Помимо базовых вариантов, добавлено еще 9 палитр. С учетом того, что каждая из 10 доступных палитр поддерживает разделение на светлое и темное оформление, разработчики и пользователи получают выбор из 20 схем.
При смене палитры интерфейс автоматически перекрашивает фон окон и панелей, состояние редакторов, строки и ячейки таблиц, а также элементы подсветки и фокуса. Интеграция специального сервиса позволяет организовывать динамическое переключение тем непосредственно в пользовательском приложении.

Плотность пользовательского интерфейса
Для компактного размещения максимального объема информации на экранах добавлена настройка плотности элементов управления в фирменной теме оформления DeltaDesign. Теперь программисты могут задействовать один из трех предопределенных режимов отображения: компактный Compact, стандартный Standard или просторный Spacious, изменяющий размер шрифтов и межэлементные отступы.

Сервисы приложения
В架构 MVVM-приложений добавлены Application Services, упрощающие взаимодействие слоя ViewModel с графическим окружением без прямых ссылок на типы Avalonia.
Инструменты взаимодействия и файлы
Набор сервисов охватывает стандартные диалоговые окна:

- IMessageBoxService — вызов системных сообщений с фиксированным набором кнопок;
- IDialogService — модальные окна, содержимое которых задается во ViewModel;
- IChoiceDialogService — диалоговые формы с произвольными вариантами выбора;
- IWindowService — открытие немодальных окон на базе дополнительных ViewModel.
Для работы с файловой системой предусмотрены асинхронные и синхронные службы IOpenFileDialogService и ISaveFileDialogService, открывающие стандартные диалоги ОС.

Инфраструктурные службы
Специальный менеджер IWindowsManager отслеживает текущее активное окно, выступая владельцем для всплывающих диалогов. Служба IAppearanceService отвечает за программное переключение палитр, выбор темной или светлой схемы и регулировку плотности интерфейса.
Графики
Компоненты визуализации графических данных CartesianChart, PolarChart и SmithChart получили расширенные настройки отрисовки линий. Обновленный API позволяет тонко конфигурировать толщину линий, штриховые шаблоны и форму концевых элементов.

Docking UI
Менеджер компоновки панелей DockManager обзавелся событием CustomizeDockGuide. Оно дает возможность перехватывать и динамически скрывать подсказки стыковки в процессе перетаскивания панелей, ограничивая нежелательные пользовательские сценарии компоновки.

Другие улучшения
В окне выбора колонок Column Chooser для табличных контролов появилась команда Select All для одновременной отметки всех элементов. Реализована подписка на событие DragOver, позволяющая перетаскивать строки в пустую область ниже списков для автоматического добавления в конец.
Компонент SpinEditor получил свойство AllowRoundOutOfRangeValue, выполняющее автоматическое округление введенных данных до ближайшего разрешенного предела. Компонент Graphics3DControl на операционной системе macOS переведен с программного рендеринга на аппаратное ускорение через графический API Apple Metal.

Новые шаблоны проектов для dotnet new
Для быстрой генерации проектов через командную строку подготовлены обновленные шаблоны с префиксом emx:

- emx.app — базовая заготовка Avalonia-приложения с подключенной библиотекой;
- emx.mvvm — стандартное разделение на View и ViewModel;
- emx.services — шаблон с предварительно настроенными сервисными классами;
- emx.mdi — многооконный интерфейс на базе DockManager;
- emx.window — пустое окно MxWindow с поддержкой фирменных тем.
Установка пакета шаблонов предваряет создание рабочих проектов одной консольной командой.
Автоматизированное тестирование
Инфраструктура тестирования переведена на Microsoft Testing Platform (MTP). Это позволило расширить покрытие CI-пайплайнов на macOS и WebAssembly в дополнение к Windows и Linux, доведя общее количество автоматических тестов до значений, превосходящих саму платформу Avalonia UI.

Документация для людей и для LLM
Для разработчиков, использующих искусственный интеллект, развернут специальный MCP-сервер, транслирующий актуальную документацию, примеры, справочные данные API и публичные тикеты техподдержки. Сами страницы портала снабжены поисковыми индексами и Markdown-версиями статей.

Справочник API Reference теперь доступен в официальной документации, а исходные материалы документации выложены в открытый публичный репозиторий для развертывания в изолированных локальных контурах.
Демо-приложение
Для быстрой оценки возможностей библиотеки выпущено демонстрационное приложение. Для пользователей macOS подготовлена отдельная сборочная версия, в которой 3D-графика функционирует сразу после запуска без дополнительных конфигураций.


Лицензирование и открытый код
Действует 60-ний триальный период без функциональных ограничений, за исключением небольшого водяного знака в интерфейсе. Библиотечные сборки не обфусцированы, что позволяет исследовать код через ILSpy и активировать лицензии в полностью изолированных средах. Для авторов проектов с открытым исходным кодом предусмотрена возможность получения бесплатных некоммерческих лицензий при соблюдении базовых условий хостинга на GitHub и лицензионной чистоты.
