Друзья, от лица нашей команды EMX Controls и всей компании Эремекс поздравляем вас с прошедшими праздниками. Пусть наступивший новый год подарит вам творческих успехов и позитивное настроение. А мы постараемся радовать вас почаще хорошими новостями. И сегодня – одно из таких событий. Буквально вчера мы выпустили крупное обновление — релиз 1.3 нашей библиотеки контролов для Avalonia UI. Об этом и хотим рассказать в данной статье.

Наши предыдущие публикации о развитии библиотеки контролов

В новой версии библиотеки 1.3 мы расширили функциональность наших флагманских продуктов (Data Grid, Tree List и Charts) и продолжили развитие модуля DocumentProcessing, который сейчас реализует задачи по обработке документов (PDF и XLSX), а в будущем будет включать компоненты для создания отчетов и печати документов. В последние месяцы произошли события, связанные с сертификацией, новым каналом продаж продукта и поддержкой проектов с открытым кодом. Обо всём этом расскажем ниже.

DataGrid и TreeList

Фиксированные Колонки

Контролы DataGrid и TreeList предназначены для работы с многоколоночными табличными данными. Когда не все колонки помещаются в область просмотра, горизонтальный скролбар позволяет осуществить прокрутку данных. Однако иногда требуется закрепить некий набор колонок, чтобы они оставались на экране во время горизонтального скролинга. Для решения этой задачи в версии 1.3 появилась поддержка фиксированных колонок. Теперь можно закрепить любое количество столбцов с левого или правого края контрола, исключив их из горизонтальной прокрутки.

Для конечного пользователя предусмотрена возможность фиксации колонок или отмены действия через встроенное меню:

Улучшения UI Фильтрации Данных

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

Специальная строка "Auto Filter Row" позволяет на лету фильтровать данные при вводе значений. В новой версии мы добавили для пользователя возможность выбора оператора сравнения в ячейках этой строки. Теперь можно нажать на иконку оператора, чтобы открыть выпадающий список и выбрать нужный оператор для конкретной колонки.

Экспорт в CSV и Графические Форматы

С помощью экспорта данных в различные форматы вы можете делиться этими данными с другими пользователями, анализировать их в другой программе или отправлять на печать. В предыдущей версии мы презентовали экспорт данных в XLSX и PDF, а с новым релизом мы добавили поддержку CSV и графических форматов.

  • Метод ExportToCsv сохраняет данные в текстовом формате CSV, в котором значения разделяются выбранным разделителем.

  • Метод ExportToImages сохраняет данные в выбранном графическом формате (PNG, JPEG, SVG или WebP). При этом поддерживается автоматическая разбивка контрола на "страницы" и сохранение каждой "страницы" в виде отдельного файла.

Методы экспорта – это часть библиотеки DocumentProcessing, которую мы планируем развивать в будущем. В планах у нас создать компонент Reporting для генерации кастомных отчетов/документов, а также реализовать встроенный функционал печати.

Алфавитно-цифровая Сортировка

Алфавитная сортировка является самым распространенным способом упорядочивания данных. Однако, когда текст содержит смешанные данные (текст и цифры), может быть полезна алфавитно-цифровая сортировка (еще она называется "естественной"). В новой версии библиотеки мы добавили такой режим.

При алфавитно-цифровой сортировке числовые последовательности внутри строк интерпретируются и сравн��ваются как числа, а не как последовательности символов. Вот как сортируются данные в контроле DataGrid разными алгоритмами сортировки:

Charts

"Пустые" Точки

Для построения всевозможных графиков в декартовой и полярной системах координат библиотека EMX Controls предлагает два контрола - CartesianChart и PolarChart. Линейные графики предполагают последовательное соединение всех точек. Но иногда возникает ситуация с неполными данными, когда некоторые значения не определены. В новой версии эта задача решается с помощью "пустых" точек, которые позволяют добавить разрыв в линейные графики.

Чтобы определить "пустые" точки, нужно выставить их значения в double.NaNdouble.PositiveInfinity или double.NegativeInfinity.

Новые Виды Графиков

В новом релизе контрол CartesianChart предлагает два новых представления графиков:

  • Stacked Area (накопительная диаграмма с областями) — Показывает вклад каждой серии данных в целое.

  • Full Stacked Area (нормированная накопительная диаграмма с областями) — Показывает относительный вклад каждой серии данных в процентах.

Инверсия Осей

Теперь можно инвертировать оси X и Y в контроле CartesianChart. Например, вы можете перенести точку отсчета осей в левый верхний угол, инвертировав ось Y и дополнительно разместив ось X вверху графика.

Транспонирование Осей

В новой версии добавилось свойство SwapAxes в контрол CartesianChart, которое переставляет оси X и Y местами. Перестановка осей поможет улучшить читаемость графиков в определенных случаях.

Сертификация Продукта и Каналы Продаж

Библиотека EMX Controls, являясь по своей сути кроссплатформенной, поддерживает как операционные системы Windows, так и отечественные и зарубежные Linux-системы. Совсем недавно мы провели официальное тестирование библиотеки для OC Astra Linux, получив еще один сертификат совместимости.

Также в декабре мы запустили новый канал продаж. Теперь помимо официального сайта eremexcontrols.ru приобрести библиотеку контролов можно в магазине приложений Softline Store.

Поддержка Проектов с Открытым Кодом

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

https://eremexcontrols.net/open-source-licensing/

Чтобы получить бесплатную лицензию, ваш проект должен удовлетворять ряду условий:

  • Проект размещен на GitHub'e.

  • В проекте имеется файл README, содержащий ссылку на наш сайт: https://eremexcontrols.net

  • Проект распространяется под одной из следующих лицензий открытого кода: MIT, Apache 2.0, BSD 2-Clause, BSD 3-Clause, ISC или MSPL.

  • Проект референсит одну из версий библиотеки EMX Controls.

В настоящее время сервис находится в статусе бета-тестирования. Мы приглашаем всех желающих его опробовать.

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

Как всегда хотим напомнить о нашем демо-приложении. Это один из отличных способов оценить работу библиотеки EMX Controls. Обратите внимание на специальные метки, которыми подсвечиваются новые и обновленные примеры.

Вы можете скачать и запустить Offline-версию демо-приложения:

Или открыть online-версию в браузере (функциональность online-версии ограничена возможностями WebAssembly):

Использование Библиотеки в Своих Проектах

Документация к библиотеке EMX Controls поможет вам создать новое приложение с нуля. Если же вы хотите добавить библиотеку контролов в уже существующее Avalonia UI-приложение, то нужные пакеты вы найдете на сайте nuget.org.

Telegram-канал

Подписывайтесь на наш Telegram-канал для прямой связи с командой EMX Controls. Здесь вы можете задавать нам вопросы и предлагать свои идеи.

https://t.me/emxControls

Заключение

Прошедший 2025 год был весьма плодотворным для нашей команды — выпустили релиз 1.2 и подготовили релиз 1.3, получили сертификаты совместимости с отечественными ОС и запустили новый канал продаж. Мы расширили возможности библиотеки и начали создавать базу для функционала печати и создания отчетов. Надеемся, что в наступившем году будут серьезные успехи на этом пути, и мы обязательно с вами ими поделимся. А вас, наши дорогие читатели, мы хотели бы попросить поделиться своими планами на этот год. Какие у вас проекты, ожидания, и как наша библиотека может быть вам полезна?