Друзья, осень для нашей команды - время, когда мы готовимся к очередному релизу библиотеки контролов EMX Controls для Avalonia UI. Наша команда развивает этот продукт уже почти 5 лет, предоставляя вам многофункциональные визуальные компоненты для разработки графических интерфейсов под Windows, macOS, российские и зарубежные Linux, а также WebAssembly.
В новом релизе мы добавили одну из самых востребованных функций в контролах Data Grid и Tree List, расширили визуальные темы, включили сервисы для работы с окнами и диалогами и многое другое.
На днях мы выпустим версию 1.5. Ну а пока обновление библиотеки доступно в версии preview. Приглашаем вас всех протестировать библиотеку контролов. Самый простой способ - это скачать и запустить Демо-приложение.
Наши предыдущие статьи:
Библиотека EMX Controls для Avalonia UI — Обновление 1.4 — Июнь 2026
Библиотека EMX Controls для Avalonia UI — Версия 1.3 — Январь 2026
Библиотека Eremex Controls для Avalonia UI — Версия 1.2 — Октябрь 2025
Пример использования библиотеки EMX Controls для создания финансовых кроссплатформенных приложений
Как мы улучшили скорость работы табличных контролов библиотеки EMX Controls для Avalonia UI
Библиотека EremexControls.NET для Avalonia UI — Большое обновление (v 1.1 EAP)
Библиотека EremexControls.NET для Avalonia UI — Обновление июль-август 2024
Библиотека EremexControls.NET для Avalonia UI — Обновление май-июнь 2024
[Библиотека EremexControls.NET для Avalonia UI — Обновление март-апрель 2024
ИТОГИ (Summary) в контролах Data Grid и Tree List
Контролы Data Grid и Tree List позволяют отображать и редактировать табличные данные (плоские и иерархические многоколоночные списки). Но с помощью них пользователь может выполнять и простой визуальный анализ данных (в частности, за счет функций сортировки, группировки и фильтрации). Начиная с версии 1.5, к этим инструментам анализа добавилась возможность вычисления Итогов (Summary). Теперь можно просто вычислить Итоги по любой колонке. Причем можно показать несколько итогов одновременно для любой конкретной колонки.

Типы Итогов "из коробки": Сумма, Мин, Макс, Среднее и Количество
Ваш собственный алгоритм для вычисления Итогов — Событие
CustomSummaryпозволяет задать свою функцию.Несколько Итогов в одной колонке — Для каждой колонки можно вычислить любое число Итогов.
Отображение Итогов в другой колонке — Итоги, вычисленные по одной колонке, можно отобразить в другой.
Отдельно следует упомянуть возможности для пользователя управлять Итогами в рантайме.
Пользователи могут добавлять Итоги через кнопку Σ, которая открывает выпадающий список:

Для дополнительного управления итогами (изменение порядка и отображение в другой колонке) мы реализовали простой редактор:

В текущей preview версии доступно вычисление Итогов по всем записям. Но буквально в ближайшее время мы добавим и вычисление Итогов по группам строк (в режиме группировки) в контроле Data Grid.

Палитры для визуальной темы
Как и большинство тем в Авалонии, визуальная тема для EMX Controls, поддерживает светлый и темный варианты. В новой версии библиотеки мы расширили нашу визуальную тему, добавив к базовой палитре еще 9. Все 10 палитр поддерживают светлый и темный варианты, в результате пользователь имеет возможность выбрать одну из 20 схем.

При переключении палитры обновляются цвета элементов интерфейса:
Фон окон, панелей и контейнеров.
Фон редакторов в разных состояниях.
Фон строк и ячеек в табличных контролах.
Цвета выделения, подсветки элементов под курсором и акцентов у фокусированных объектов.
И многое другое.
Вы также можете создать переключатель палитр в приложении, чтобы пользователь мог выбрать нужную схему под себя. В новой версии библиотеки мы добавили новый сервис для решения этой задачи:

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

Сервисы приложения
В новой версии EMX Controls появились Application Services для MVVM-приложений. Это набор сервисов, которые позволяют работать с окнами, диалогами и настройками тем оформления прямо из ViewModel, не обращаясь к типам Avalonia напрямую.
Что такое сервис
Сервис - это объект с определенным интерфейсом, через который ViewModel обращается к сервису, чтобы выполнить некое действие: показать диалог, открыть окно, спросить подтверждение, и т.д. При этом ViewModel не имеет ссылок на типы окон, диалогов и другие специфичные объекты. Сервис выполняет всю эту работу при обращении к нему через интерфейс.

Сервисы для взаимодействия с пользователем:
IMessageBoxService — Показывает стандартные окна сообщений с фиксированным набором кнопок (Ok, Yes/No, Yes/No/Cancel и т. д.);
IDialogService — Показывает модальные диалоги, содержимое и кнопки которых задаются во ViewModel;
IChoiceDialogService — Показывает диалог с произвольным набором кнопок и возвращает результат нажатой кнопки;
IWindowService — Открывает немодальные окна, заданные с помощью дополнительных ViewModel.
Сервисы для работы с файлами:
IOpenFileDialogService — Показывает (синхронно или асинхронно) системный диалог открытия файла;
ISaveFileDialogService — Показывает (синхронно или асинхронно) системный диалог сохранения файла.
Инфраструктурные сервисы:
IWindowsManager — Отслеживает активное окно приложения. Другие сервисы автоматически обращаются к IWindowsManager, чтобы определить владельца для показываемых сообщений, диалогов и окон;
IAppearanceService — Управляет настройками текущей визуальной темы: переключение цветовой палитры, выбор между светлым и темным вариантом, а также выставление плотности интерфейса.
Графики
В контролы для визуализации графиков (CartesianChart - декартовы координаты, PolarChart - полярные координаты и SmithChart - диаграмма Смита) мы добавили опции для тонкой настройки линий. Теперь можно легко задать толщину линии, шаблон (например, штрихи), форму концов линии и др.

Docking UI
Компонент DockManager получил новое событие CustomizeDockGuide, которое позволяет управлять dock-подсказками во время перетаскивания панелей. С его помощью можно динамически скрывать отдельные dock-подсказки и таким образом запрещать определенные операции стыковки панелей.

Другие улучшения
Data Grid и Tree List — В окне выбора колонок (Column Chooser) появилась команда
(Select All), которая позволяет выбрать или снять выделение со всех колонок сразу:

Data Grid и Tree List — Теперь можно подписаться на событие
DragOver, чтобы добавить возможность перетаскивания строк на пустую область (ниже всех строк). При перетаскивании в эту область строки будут добавлены в конец списка.SpinEditor — Новое свойство
AllowRoundOutOfRangeValueавтоматически округляет введенное значение до ближайшего допустимого, если оно выходит за пределы диапазона.-
Graphics3DControl — Аппаратный рендеринг через Apple Metal на macOS
В новой версии Graphics3DControl перешел на аппаратный рендеринг, используя Apple Metal API. Раньше применялся программный рендер, теперь же отрисовка выполняется силами GPU.
Новые шаблоны проектов для dotnet new
У нас появилось несколько новых шаблонов, в том числе шаблон приложения с сервисами (Application Services). Для удобства мы сократили короткие имена шаблонов. Теперь они начинаются с emx.

Eremex Avalonia .NET App (
emx.app) — Базовое Avalonia-приложение с подключенной библиотекой EMX Controls.Eremex Avalonia .NET MVVM App (
emx.mvvm) — Базовое MVVM-приложение, в котором UI и бизнес-логика разделены на слои View и ViewModel.Eremex Avalonia .NET App with Application Services (
emx.services) — MVVM-приложение, в котором ViewModel использует сервисы для показа диалогов, выбора файлов и управления темой оформления.Eremex Avalonia .NET MDI App (
emx.mdi) — Приложение с многооконным интерфейсом (MDI), построенным на основе библиотеки Docking UI (компонентDockManager).Eremex Avalonia Window (
emx.window) — Пустое окноMxWindow(окно с поддержкой визуальных тем Eremex).
Чтобы установить шаблоны из preview-версии, выполните команду:
dotnet new install Eremex.Avalonia.Templates@1.5.53-preview3
После этого новый проект создаётся одной командой, например:
dotnet new emx.services -n MyApp
Автоматизированное тестирование
Также мы серьёзно переработали автоматизированное тестирование EMX Controls. Сейчас количество тестов у нас превышает количество тестов в самой Avalonia UI. Мы перешли на MTP (Microsoft Testing Platform), благодаря чему добавили в CI ещё две платформы — macOS и WASM. Таким образом, каждый коммит теперь проверяется на Windows 10, Windows 11, Linux, macOS и WASM.

Документация для людей и для LLM
MCP-сервер
Всё больше разработчиков пишут код вместе с AI-ассистентами. Чтобы ассистент знал наши контролы, мы развернули собственный MCP-сервер. Помимо документации, примеров и API Reference, он содержит информацию из публичных тикетов нашего центра поддержки. Подключите его к своему ассистенту, и он будет отвечать на вопросы по EMX Controls с опорой на актуальные данные.
Кроме MCP, мы постарались сделать сайт eremexcontrols.net удобным не только для людей, но и для больших языковых моделей: добавили специальные индексы и сделали так, чтобы у всех статей были md-версии.
API Reference
У нас появился API Reference в документации.

Документация в открытом репозитории
По просьбам пользователей мы выложили документацию в публичный репозиторий: github.com/Eremex/controls-doc. Её можно развернуть у себя, в том числе в закрытом контуре без доступа в интернет.
Демо-приложение
Напоминаем, что у нас есть демо-приложение, которое предоставляет один из лучших способов познакомиться с библиотекой EMX Controls. Новые и обновленные примеры помечены специальными значками:

Мы подготовили отдельную сборку демо-приложения под macOS, которую вы можете скачать из https://github.com/Eremex/controls-demo/releases и запустить.

Как создать новый проект
Если вы еще не работали с EMX Controls, создать новый проект можно легко из шаблона. Пакеты на nuget.org — это полностью рабочие подписанные сборки. Используйте следующий код, чтобы создать проект из шаблона с использованием этих сборок:
dotnet new install Eremex.Avalonia.Templates@1.5.53-preview3 dotnet new emx.mvvm -n MyApp
Триал
Триальный период (60 дней) дает вам возможность детально ознакомиться с библиотекой EMX Controls. До покупки лицензии все контролы и возможности библиотеки работают в полном объёме — единственное отличие от лицензированной версии состоит в небольшой триальной плашке, которая отображается в правом нижнем углу приложения. Никаких других ограничений нет.
Открытый код
Сборки EMX Controls подписаны и намеренно не обфусцированы, поэтому детали реализации в любой момент можно изучить в ILSpy. Пакеты с nuget.org без проблем переносятся в закрытый контур и там работают в полном объёме — лицензия разработчика активируется офлайн. А если проекту требуются исходники, например для сертификации во ФСТЭК, мы готовы их предоставить.
Бесплатные лицензии для open-source проектов
Хотим напомнить, что, если вы разрабатываете проект с открытым исходным кодом, то можно получить бесплатную некоммерческую лицензию на EMX Controls. Оформите заявку через сервис лицензирования open-source проектов. Условия простые:
Проект размещён на GitHub и содержит README со ссылкой на eremexcontrols.net
Проект использует EMX Controls и распространяется под одной из лицензий MIT, Apache 2.0, BSD 2-Clause, BSD 3-Clause, ISC или MSPL.
Лицензия привязывается к имени проекта и мажорной версии библиотеки (при их смене нужно получить новую). Поддержка для бесплатных лицензий может быть ограничена. Подробности — в разделе «Licensing».
Полезные ссылки
Заключение
Приглашаем всех протестировать новую версию 1.5 библиотеки EMX Controls, которая уже доступна на сайте nuget.org. Мы, как всегда, ждём ваших отзывов и предложений. Обратная связь помогает нам выбирать приоритеты и развивать наш продукт. Оставайтесь с нами.