Наконец это свершилось. Сегодня мы официально выпускаем первую версию наших контролов, которые получили немало важных изменений с момента публикации нашей предыдущей статьи.
Развитие линейки Chart-контролов
Новая версия библиотеки существенно расширяет возможности контролов для отображения графиков.
Были добавлены новые chart-контролы, а в CartesianChart (построение графиков в декартовой системе координат) появилась поддержка дополнительных серий данных.
PolarChart
Новый chart-контрол, который позволяет строить графики в полярных системах координат.
Основные функции включают:
Пометка уровней с помощью линий и полос (strips and constant lines)
Прицел (crosshair)
Направление и угол отсчета координат (sweep direction and start angle)
Поддержка MVVM-паттерна для задания данных и свойств элементов диаграммы
Серии данных:
Точечный график (PolarPointSeriesView)
Линейный график с сортировкой точек (PolarLineSeriesView)
Линейный график без сортировки точек (PolarScatterLineSeriesView)
Область (PolarAreaSeriesView)
Диапазон (PolarRangeAreaSeriesView)
SmithChart
Специализированный chart-контрол для построения графиков на диаграмме Смита.
Отображение прицела (crosshair)
Поддержка MVVM-паттерна
Серии данных:
Точечный график (SmithPointSeriesView)
Линейный график без сортировки точек (SmithScatterLineSeriesView)
CartesianChart - Дополнительные серии данных
CartesianChart, о котором мы рассказывали в предыдущей статье, получил новые функции и новые серии данных.
Пометка уровней с помощью линий и полос (strips and constant lines)
Поддержка MVVM-паттерна.
Новые серии данных:
Точечный график (CartesianPointSeriesView)
Область (CartesianAreaSeriesView)
Линейный график без сортировки точек (CartesianScatterLineSeriesView)
Ступенчатый график (CartesianStepLineSeriesView)
Ступенчатые области (CartesianStepAreaSeriesView)
Диапазон областей (CartesianRangeAreaSeriesView)
Столбчатая диаграмма (CartesianSideBySideBarSeriesView)
Столбчатые диапазоны (CartesianSideBySideRangeBarSeriesView)
Темная тема
Все chart-контролы теперь автоматически умеют подстраивать свои цвета под темную тему оформления.
Скачайте Демо-приложение, чтобы увидеть и протестировать все новые возможности chart-контролов.
Обновления в других контролах
Чтобы добавить в окно индикатор загрузки или показать прогресс операции, вы можете использовать наш новый контрол CircleProgressIndicator
.
Доступны опции для задания прогресса, минимального и максимального значений.
Вы можете выбрать заполнение индикатора с использованием анимации или без нее.
Другие контролы получили не столь значительные изменения. В основном они касаются появления нового и изменения существующего API. Более подробную информацию мы собрали на страничке нашей документации: Version 1.0
Визуальная тема
В одной из предыдущих статей говорилось про единую дизайн-систему для оформления контролов Eremex. В этом релизе мы решили создать отдельную библиотеку с данной визуальной темой и назвали ее DeltaDesign
. Как можно догадаться, название было дано в честь САПР Delta Design, графический интерфейс которой в значительной степени базируется на библиотеке Eremex Controls.
Выделение темы в отдельную библиотеку позволит вам ее изменить в соответствии с вашими требованиями и создать новую подключаемую тему оформления.
Исходный код визуальной темы DeltaDesign
будет в свободном доступе. А в дальнейшем мы планируем создать примеры, показывающие возможности по модификации визуальной темы.
NuGet пакеты
Теперь последняя версия пакетов с нашими контролами, темой и шаблонами доступна на сайте nuget.org.
- Eremex.Avalonia.Controls
- Основной пакет, который содержит все контролы Eremex для Avalonia UI, включая редакторы, гриды и чарты.
- Eremex.Avalonia.Themes.DeltaDesign
- Библиотека с подключаемой темой оформления DeltaDesign
для наших контролов.
- Eremex.Avalonia.Templates
- Пакет с шаблонами, которые позволяют легко создавать новые Avalonia-приложения с нашими контролами.
Все наши пакеты и библиотеки подписываются, что позволяет проверить подлинность и целостность сборок.
Шаблоны новых проектов
Пакет Eremex.Avalonia.Templates позволит вам установить шаблоны для быстрого создания Avalonia-приложений на основе библиотеки Eremex Controls.
После установки пакета с помощью команды:
dotnet new install Eremex.Avalonia.Templates
будут доступны шаблоны для создания новых проектов и модулей:
Eremex Avalonia .NET App (eremex.avalonia.app) — Создает новое Avalonia-приложение и подключает последнюю версию наших контролов. В качестве окна используется класс MxWindow, который поддерживает темирование заголовка и бордюра окна. Шаблон также добавляет код для регистрации темы
DeltaDesign
.Eremex Avalonia .NET MVVM App (eremex.avalonia.mvvm) — Создает новое Avalonia-приложение на основе паттерна MVVM, выделяя классы Window (View) и ViewModel. В остальном действие шаблона схоже с предыдущим.
Eremex Avalonia Window (eremex.avalonia.window) — Создает темированное окно на основе объекта MxWindow.
Чтобы создать новое приложение на основе шаблона, можно выполнить команду:
dotnet new eremex.avalonia.mvvm -n AvaloniaApplication1
Или можно найти нужный шаблон в Visual Studio при создании нового проекта.
Лицензирование
В библиотеку Eremex Controls был добавлен код для лицензирования продукта на основе решения от Guardant. Лицензия приобретается на 1 год на каждое рабочее место разработчика приложений. Она позволяет в течение этого срока создавать любое количество проектов с нашими контролами.
В случае, если лицензия не найдена, показывается триальное сообщение.
Также это сообщение будет выдаваться по окончании срока лицензии при создании новых приложений или изменении имени старого проекта.
Обновленное Демо-приложение
Обновленное Демо-приложение иллюстрирует не только новые возможности чарт-контролов. Были расширены модули и по другим контролам (Data Grid, Tree List и редакторы), чтобы показать дополнительные функции.
Надеемся, что вы найдете изменения в новой версии контролов полезными и поделитесь своими комментариями и пожеланиями.
Комментарии (13)
Vedomir
01.07.2024 19:17+1Из статьи непонятна модель лицензирования. Правильно ли я понимаю, что это чисто коммерческое, закрытое решение, которое невозможно использовать для некоммерческих/открытых проектов без покупки лицензии? Можно ли купить лицензию в России? Как вообще с санкционными перспективами?
xtraroman Автор
01.07.2024 19:17+2Это 100% коммерческий проект разрабатываемый в России. Вы можете использовать продукт бесплатно в триальном режиме ограниченное время. Лицензия приобретается на год на разработчика. Разработчик этот тот, кто меняет код. Для CI/CD лицензия не нужна. Подробнее написали здесь https://eremexcontrols.net/articles/licensing.html. По вопросам приобретения лицензии пожалуйста напишите нашему менеджеру по продажам Илье https://t.me/i_skv
xtraroman Автор
01.07.2024 19:17+2Так же, у нас есть телеграм канал для технических вопросов https://t.me/emxControls
alcotel
01.07.2024 19:17Очень
уё..удобный и логичный авто-выбор шкалы. Моск из глаз совсем не вытекает, и нет желания отрывать руки за такое.Не только у Вас такое видел, кстати. Labview, например, таким же автоскейлом страдает. Видимо, в мире, где космические корабли бороздят просторы, и нейросети пишут код, это какая-то безумно сложная задача - расставить на линейке удобные цифры.
sarcasm=off
AlexeyStadnik
01.07.2024 19:17+3Не хочу оправдывать совсем тупую реализацию, но да -- задача что-то расставить автоматом чтобы мясным мешкам потом было удобно или хотябы не сильно бесило -- очень сложная задача. Начиная с постановки и определения значения слова "удобно".
alcotel
01.07.2024 19:17Вот помню ещё, был у меня осциллограф Hantek MSO5202D. У него в принципе довольно глюкавая прошивка была, но безумные китайские программисты сделали переключение шкалы времени с множителями 2, 4, 8, 20, 40, 80... мкс/деление. На 8 я жутко плевался, и от осцилла в итоге избавился.
Для десятичной системы счисления, логично, что удобна сетка с делителями числа 10 - в уме считать проще. В логарифмическом масштабе, бывает, удобно ещё число 3, т.к. примерно равно sqrt(10). Недесятичные данные (дата, время, угол) имеют свои нюансы.
Итого вариантов оказывается не так много, в 99,9% всё уже придумано. Если что-то нужно совсем хитрое, то пользователь уже сам настраивает.
В GNUPlot, например как-то же всё работает. А тут тем более не поделка программиста-самоучки, а
Это 100% коммерческий проект
За то, что люди кодят не подумав, я, например, не готов платить.
AlexeyStadnik
01.07.2024 19:17+1О да, знакомая боль...
Но софт от железа отличается в первую очередь тем, что легко меняется и купив его сегодня, уже завтра можно получить улучшения за уже уплаченные деньги. С осциллографом так не прокатит, если ручка железная, а надписи шелкографией.
Это я к чему -- знаю ребят, абсолютно уверен, что там не "не подумав", а "не влезло по срокам, отложено на следующий мажор". И почти уверен, что там прямо сейчас рядом есть API чтобы самому закрутить шкалу как тебе хочется.alcotel
01.07.2024 19:17Прошивка осцилла тоже обновляется, косяки исправляются. Там в основе обычный ARM с линуксом, обновляется с флешки. Но на конкретно эту модель производитель забил, и российский представитель мне тоже ничем не помог. Пришлось поискать тот, для которого на 4pda много прошивок выложено.
Закрутить шкалу, естественно, самому можно. Но так-то и график самому нарисовать недолго.
Надеюсь, допилят. Пожелаю авторам удачи, но пока пожалуй пройду мимо.
xtraroman Автор
01.07.2024 19:17+3Сейчас алгоритм расположения меток на шкале в зависимости от доступного места имеет недостатки. Мы улучшим его.
TerekhinSergey
Выглядит очень неплохо! Подскажите, есть ли возможность работать без контрола и отрендерить график куда-нибудь в svg/png/pdf в бекэнде?
KatterMaw
Любой контрол можно рендерить в картинку, можно и в headless режиме если правильно настроить стартап. https://github.com/AvaloniaUI/Avalonia.HtmlRenderer/issues/10
VBDUnit
Рендеринг будет средствами GPU или CPU?
Heldar
Спасибо за оценку!
Пока встроенного функционала по сохранения/экспорту графиков нет. Но как ответили выше можно сохранить контрол самому.
В будущем подумаем о добавлении подобного функционала.