Друзья, приветствуем вас! Наступило долгожданное лето. И, пока все не ушли в отпуска, мы спешим с новым анонсом. Сегодня у нас вышла версия 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 (Автоподбор Ширины).
Теперь пользователи могут дважды кликнуть по правой границе заголовка колонки, чтобы выставить минимальную ширину колонки, необходимую для показа данных без обрезки.

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

У разработчиков также есть возможность выбора режима операции Best Fit.
Режим Fast (быстрый) — Измеряет ширину только уникальных значений в колонке. Это заметно ускоряет работу автоподбора в большинстве стандартных сценариев, особенно в больших таблицах с повторяющимися данными.
Режим Full (полный) — Измеряет ширину всех значений в колонке, включая дубликаты. Этот режим работает медленнее, чем Fast, но он необходим в тех случаях, когда в ячейках используются нестандартные шаблоны (CellTemplate) или отображаются индикаторы ошибок валидации. Режим Full гарантирует, что ширина колонки будет рассчитана с учётом всех возможных визуальных состояний ячеек.
По умолчанию используется режим Fast, который подходит для большинства ситуаций и обладает лучшей производительностью.
Сброс изменений ширины колонок
После того как пользователь изменил ширину любой колонки (перетаскиванием или через автоподбор), в контекстном меню колонки появляется команда "Сбросить ширину колонок" (Reset Column Width).

Эта команда отменяет все пользовательские изменения и возвращает колонкам их исходную ширину (ширину, которая была задана в XAML или коде до этого момента).
Data Grid и Tree List - Улучшения операций перетаскивания строк (Drag-and-drop)
Миниатюры
Для конечных пользователей безусловно важна визуальная индикация при перетаскивании объектов. Контролы DataGrid и Tree List теперь отображают миниатюры перетаскиваемых строк. Это создает наглядную обратную связь при перемещении данных.
При перетаскивании одной строки показывается её миниатюра.

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

Раньше пользователь мог начать перетаскивание строки, кликнув и потянув за любую ячейку. Но это поведение конфликтовало с другим требованием: инициировать редактирование при клике на ячейку. Использование специального указателя в новом режиме решает эту проблему.
CartesianChart - Тонкая настройка "прицела" (crosshair)
В новой версии контрол CartesianChart получил дополнительный API для управления прицелом (crosshair). Среди наиболее значимых изменений:
Добавили новый режим отображения меток прицела Smart (он теперь используется по умолчанию). В этом режиме метки нескольких серий могут объединяться, чтобы не допустить визуального перекрытия друг друга.

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

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

Сортировка серий по значениям Показ меток только для ближайших точек. Можно ограничить радиус (в пикселях), в пределах которого прицел ищет точки для отображения подписей.
Поддержка Avalonia 12
Библиотека EMX Controls версии 1.4 теперь полностью поддерживает Avalonia 12.
Новая версия фреймворка Avalonia принесла значительные улучшения в производительности, стабильности и надёжности работы на различных платформах. Мы адаптировали нашу библиотеку к изменениям в ядре фреймворка и провели тщательное тестирование на совместимость.
Убрали зависимость от пакета CommunityToolkit.Mvvm
Раньше наша библиотека внутри себя использовала пакет CommunityToolkit.Mvvm. В новой версии мы от него отказались, чтобы не навязывать нашим пользователям конкретные инструменты для работы с бизнес-объектами.
Если вы используете CommunityToolkit.Mvvm в своих проектах, добавьте явно этот пакет в свой проект.
Полезные ссылки
Заключение
Мы, как всегда, ждем ваших отзывов и предложений. Обратная связь помогает нам выбирать приоритеты и развивать библиотеку EMX Controls. Оставайтесь с нами.
























