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

от автора

Друзья, приветствуем вас! Наступило долгожданное лето. И, пока все не ушли в отпуска, мы спешим с новым анонсом. Сегодня у нас вышла версия 1.4 библиотеки EMX Controls для Avalonia UI.

EMX Controls — это профессиональная библиотека визуальных компонентов для создания кроссплатформенных приложений на Avalonia UI. В её состав входят десятки контролов: многофункциональные таблицы (Data Grid и Tree List), графики (Cartesian Chart, Polar Chart и Heatmap), инструменты для построения интерфейсов (Ribbon, Docking UI и Property Grid) и многое другое.

Основное внимание этого обновления — наши флагманские контролы: Data Grid и Tree List. Мы добавили несколько давно ожидаемых функций, которые сделают работу с данными ещё удобнее. Также приятные улучшения получил компонент Cartesian Chart. Все подробности ниже.

Наши предыдущие статьи про развитие библиотеки контролов EMX Controls:

Data Grid и Tree List — Автоподбор ширины колонок (Best-Fit)

Одна из часто используемых функций — это возможность быстро подогнать ширину колонки под ее содержимое. В версии 1.4 мы реализовали механизм Best-Fit (Автоподбор Ширины).

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

data-grid-bestfit-on-double-click

Автоподбор ширины колонок

Также можно вызвать «Автоподбор Ширины» из контекстного меню колонки. Можно подобрать ширину как для конкретной колонки, так и для всех колонок.

data-grid-bestfit-context-menu

Команды в контекстном меню

У разработчиков также есть возможность выбора режима операции Best Fit.

  • Режим Fast (быстрый) — Измеряет ширину только уникальных значений в колонке. Это заметно ускоряет работу автоподбора в большинстве стандартных сценариев, особенно в больших таблицах с повторяющимися данными.

  • Режим Full (полный) — Измеряет ширину всех значений в колонке, включая дубликаты. Этот режим работает медленнее, чем Fast, но он необходим в тех случаях, когда в ячейках используются нестандартные шаблоны (CellTemplate) или отображаются индикаторы ошибок валидации. Режим Full гарантирует, что ширина колонки будет рассчитана с учётом всех возможных визуальных состояний ячеек.

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

Сброс изменений ширины колонок

После того как пользователь изменил ширину любой колонки (перетаскиванием или через автоподбор), в контекстном меню колонки появляется команда «Сбросить ширину колонок» (Reset Column Width).

data-grid-reset-column-width-menu

Команда для сброса размеров колонок

Эта команда отменяет все пользовательские изменения и возвращает колонкам их исходную ширину (ширину, которая была задана в XAML или коде до этого момента).

Data Grid и Tree List — Улучшения операций перетаскивания строк (Drag-and-drop)

Миниатюры

Для конечных пользователей безусловно важна визуальная индикация при перетаскивании объектов. Контролы DataGrid и Tree List теперь отображают миниатюры перетаскиваемых строк. Это создает наглядную обратную связь при перемещении данных.

При перетаскивании одной строки показывается её миниатюра.

data-grid-drag-row-preview

Перетаскивание строки

При перетаскивании нескольких строк миниатюра показывает количество перемещаемых объектов.

Новый режим перетаскивания

В версии 1.4 мы добавили новый режим перетаскивания строк, при котором перетаскивание осуществляется с помощью специального указателя (drag handle). Эти указатели отображаются слева от каждой строки. Пользователь может захватить этот указатель для инициирования операции перетаскивания.

data-grid-drag-handle

Новый режим перетаскивания строк с использованиеем специального указателя

Раньше пользователь мог начать перетаскивание строки, кликнув и потянув за любую ячейку. Но это поведение конфликтовало с другим требованием: инициировать редактирование при клике на ячейку. Использование специального указателя в новом режиме решает эту проблему.

CartesianChart — Тонкая настройка «прицела» (crosshair)

В новой версии контрол CartesianChart получил дополнительный API для управления прицелом (crosshair). Среди наиболее значимых изменений:

  • Добавили новый режим отображения меток прицела Smart (он теперь используется по умолчанию). В этом режиме метки нескольких серий могут объединяться, чтобы не допустить визуального перекрытия друг друга.

chart-crosshair-smart-mode

Режим «Smart» отображения меток
  • Добавили режим сортировки серий в объединенной метке.

    • Режим By Series — Серии сортируются в порядке их добавления в контрол.

    chart-crosshair-series-sorting

    Сортировка серий по порядку
    • Режим By Value — Серии сортируются согласно значениям по оси Y.

    chart-crosshair-series-sorting-by-value

    Сортировка серий по значениям
  • Показ меток только для ближайших точек. Можно ограничить радиус (в пикселях), в пределах которого прицел ищет точки для отображения подписей.

Поддержка Avalonia 12

Библиотека EMX Controls версии 1.4 теперь полностью поддерживает Avalonia 12.

Новая версия фреймворка Avalonia принесла значительные улучшения в производительности, стабильности и надёжности работы на различных платформах. Мы адаптировали нашу библиотеку к изменениям в ядре фреймворка и провели тщательное тестирование на совместимость.

Убрали зависимость от пакета CommunityToolkit.Mvvm

Раньше наша библиотека внутри себя использовала пакет CommunityToolkit.Mvvm. В новой версии мы от него отказались, чтобы не навязывать нашим пользователям конкретные инструменты для работы с бизнес-объектами.

Если вы используете CommunityToolkit.Mvvm в своих проектах, добавьте явно этот пакет в свой проект.

Полезные ссылки

Заключение

Мы, как всегда, ждем ваших отзывов и предложений. Обратная связь помогает нам выбирать приоритеты и развивать библиотеку EMX Controls. Оставайтесь с нами.

ссылка на оригинал статьи https://habr.com/ru/articles/1047728/