ESPNRoundtable: Ladder match winners, bold predictions, moreESPN Deportes¿Qué necesita tu equipo de NBA? El mayor hueco en cada plantillaThe Jerusalem PostMiddle Israel: Remember October 7 by building a stronger western Negev - opinionDaily MaverickLOCAL ELECTIONS 2026: High court orders ANC to reinstate Andile Lungisa after unlawful removalInquirerSenate takes down impeachment livestream after data privacy concernsRTP DesportoFC Porto com prejuízos de mais de 20 milhõesZDF heuteAktuelle Pressemitteilungen des ZDFConsequencePhoebe Bridgers Reunites with boygenius for A24’s Sound Check at Cherry Lane Theatre Series: WatchGolem.deCyberangriffe auf Banken: Hacker nutzt KI und hinterlässt AccountdatenSRF NewsLehrer, Vater, Sportler – Wenn andere aufgeben, fängt Giuseppe Palaia erst anBillboardFuerza Regida Talk Street Mob Records, A&R & Their Stadium Tour | Billboard Cover Interview7sur7L’épisode El Niño atteint son niveau record
The Daily Newsstand · Free, Always
Friday, October 9, 2026

Библиотека EMX Controls для Avalonia UI — Обновление 1.5 — Октябрь 2026

Translate

Друзья, осень для нашей команды - время, когда мы готовимся к очередному релизу библиотеки контролов EMX Controls для Avalonia UI. Наша команда развивает этот продукт уже почти 5 лет, предоставляя вам многофункциональные визуальные компоненты для разработки графических интерфейсов под Windows, macOS, российские и зарубежные Linux, а также WebAssembly.

В новом релизе мы добавили одну из самых востребованных функций в контролах Data Grid и Tree List, расширили визуальные темы, включили сервисы для работы с окнами и диалогами и многое другое.

На днях мы выпустим версию 1.5. Ну а пока обновление библиотеки доступно в версии preview. Приглашаем вас всех протестировать библиотеку контролов. Самый простой способ - это скачать и запустить Демо-приложение.

Наши предыдущие статьи:

ИТОГИ (Summary) в контролах Data Grid и Tree List

Контролы Data Grid и Tree List позволяют отображать и редактировать табличные данные (плоские и иерархические многоколоночные списки). Но с помощью них пользователь может выполнять и простой визуальный анализ данных (в частности, за счет функций сортировки, группировки и фильтрации). Начиная с версии 1.5, к этим инструментам анализа добавилась возможность вычисления Итогов (Summary). Теперь можно просто вычислить Итоги по любой колонке. Причем можно показать несколько итогов одновременно для любой конкретной колонки.

article-v15-total-summaries
  • Типы Итогов "из коробки": Сумма, Мин, Макс, Среднее и Количество

  • Ваш собственный алгоритм для вычисления Итогов — Событие CustomSummary позволяет задать свою функцию.

  • Несколько Итогов в одной колонке — Для каждой колонки можно вычислить любое число Итогов.

  • Отображение Итогов в другой колонке — Итоги, вычисленные по одной колонке, можно отобразить в другой.

Отдельно следует упомянуть возможности для пользователя управлять Итогами в рантайме.

  • Пользователи могут добавлять Итоги через кнопку Σ, которая открывает выпадающий список:

article-v15-total-summaries-sigma
  • Для дополнительного управления итогами (изменение порядка и отображение в другой колонке) мы реализовали простой редактор:

article-v15-total-summaries-summary-dialog

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

article-v15-group-summaries

Палитры для визуальной темы

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

article-v15-color-palettes2

При переключении палитры обновляются цвета элементов интерфейса:

  • Фон окон, панелей и контейнеров.

  • Фон редакторов в разных состояниях.

  • Фон строк и ячеек в табличных контролах.

  • Цвета выделения, подсветки элементов под курсором и акцентов у фокусированных объектов.

  • И многое другое.

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

article-v15-color-palette-selector

Плотность пользовательского интерфейса

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

article-v15-density2

Сервисы приложения

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

Что такое сервис

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

article-v15-appservices-dialogs

Сервисы для взаимодействия с пользователем:

  • IMessageBoxService — Показывает стандартные окна сообщений с фиксированным набором кнопок (Ok, Yes/No, Yes/No/Cancel и т. д.);

  • IDialogService — Показывает модальные диалоги, содержимое и кнопки которых задаются во ViewModel;

  • IChoiceDialogService — Показывает диалог с произвольным набором кнопок и возвращает результат нажатой кнопки;

  • IWindowService — Открывает немодальные окна, заданные с помощью дополнительных ViewModel.

Сервисы для работы с файлами:

  • IOpenFileDialogService — Показывает (синхронно или асинхронно) системный диалог открытия файла;

  • ISaveFileDialogService — Показывает (синхронно или асинхронно) системный диалог сохранения файла.

Инфраструктурные сервисы:

  • IWindowsManager — Отслеживает активное окно приложения. Другие сервисы автоматически обращаются к IWindowsManager, чтобы определить владельца для показываемых сообщений, диалогов и окон;

  • IAppearanceService — Управляет настройками текущей визуальной темы: переключение цветовой палитры, выбор между светлым и темным вариантом, а также выставление плотности интерфейса.

Графики

В контролы для визуализации графиков (CartesianChart - декартовы координаты, PolarChart - полярные координаты и SmithChart - диаграмма Смита) мы добавили опции для тонкой настройки линий. Теперь можно легко задать толщину линии, шаблон (например, штрихи), форму концов линии и др.

article-v15-chart-linestyle

Docking UI

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

article-v15-dockguides

Другие улучшения

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

article-v15-cholumnchooesr-selectall
  • Data Grid и Tree List — Теперь можно подписаться на событие DragOver, чтобы добавить возможность перетаскивания строк на пустую область (ниже всех строк). При перетаскивании в эту область строки будут добавлены в конец списка.

  • SpinEditor — Новое свойство AllowRoundOutOfRangeValue автоматически округляет введенное значение до ближайшего допустимого, если оно выходит за пределы диапазона.

  • Graphics3DControl — Аппаратный рендеринг через Apple Metal на macOS

    В новой версии Graphics3DControl перешел на аппаратный рендеринг, используя Apple Metal API. Раньше применялся программный рендер, теперь же отрисовка выполняется силами GPU.

Новые шаблоны проектов для dotnet new

У нас появилось несколько новых шаблонов, в том числе шаблон приложения с сервисами (Application Services). Для удобства мы сократили короткие имена шаблонов. Теперь они начинаются с emx.

article-v15-new-templates
  • 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.

article-v15-ci-pipeline

Пайплайн CI для одного merge request: 9 джобов, 43 909 тестов, около 21 минуты.

Документация для людей и для LLM

MCP-сервер

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

Кроме MCP, мы постарались сделать сайт eremexcontrols.net удобным не только для людей, но и для больших языковых моделей: добавили специальные индексы и сделали так, чтобы у всех статей были md-версии.

API Reference

У нас появился API Reference в документации.

article-v15-api-reference

Документация в открытом репозитории

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

Демо-приложение

Напоминаем, что у нас есть демо-приложение, которое предоставляет один из лучших способов познакомиться с библиотекой EMX Controls. Новые и обновленные примеры помечены специальными значками:

article-v15-demo-app

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

article-v15-3d-metal-macos

Демо-приложение на MacBook Air: пример Graphics3D Control работает сразу после запуска, без дополнительных настроек.

Как создать новый проект

Если вы еще не работали с 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. Мы, как всегда, ждём ваших отзывов и предложений. Обратная связь помогает нам выбирать приоритеты и развивать наш продукт. Оставайтесь с нами.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.