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

Развитие линейки Chart-контролов

Новая версия библиотеки существенно расширяет возможности контролов для отображения графиков.

Были добавлены новые chart-контролы, а в CartesianChart (построение графиков в декартовой системе координат) появилась поддержка дополнительных серий данных.

PolarChart

Новый chart-контрол, который позволяет строить графики в полярных системах координат.

PolarChart
PolarChart

Основные функции включают:

  • Пометка уровней с помощью линий и полос (strips and constant lines)

  • Прицел (crosshair)

  • Направление и угол отсчета координат (sweep direction and start angle)

  • Поддержка MVVM-паттерна для задания данных и свойств элементов диаграммы

Серии данных:

  • Точечный график (PolarPointSeriesView)

  • Линейный график с сортировкой точек (PolarLineSeriesView)

  • Линейный график без сортировки точек (PolarScatterLineSeriesView)

  • Область (PolarAreaSeriesView)

  • Диапазон (PolarRangeAreaSeriesView)

SmithChart

Специализированный chart-контрол для построения графиков на диаграмме Смита.

SmithChart
SmithChart
  • Отображение прицела (crosshair)

  • Поддержка MVVM-паттерна

Серии данных:

  • Точечный график (SmithPointSeriesView)

  • Линейный график без сортировки точек (SmithScatterLineSeriesView)

CartesianChart - Дополнительные серии данных

CartesianChart, о котором мы рассказывали в предыдущей статье, получил новые функции и новые серии данных.

CartesianChart - Подсветка уровней
CartesianChart - Подсветка уровней
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)


  1. TerekhinSergey
    01.07.2024 19:17
    +1

    Выглядит очень неплохо! Подскажите, есть ли возможность работать без контрола и отрендерить график куда-нибудь в svg/png/pdf в бекэнде?


    1. KatterMaw
      01.07.2024 19:17
      +2

      Любой контрол можно рендерить в картинку, можно и в headless режиме если правильно настроить стартап. https://github.com/AvaloniaUI/Avalonia.HtmlRenderer/issues/10


      1. VBDUnit
        01.07.2024 19:17
        +1

        Рендеринг будет средствами GPU или CPU?


    1. Heldar
      01.07.2024 19:17
      +1

      Спасибо за оценку!
      Пока встроенного функционала по сохранения/экспорту графиков нет. Но как ответили выше можно сохранить контрол самому.
      В будущем подумаем о добавлении подобного функционала.


  1. Vedomir
    01.07.2024 19:17
    +1

    Из статьи непонятна модель лицензирования. Правильно ли я понимаю, что это чисто коммерческое, закрытое решение, которое невозможно использовать для некоммерческих/открытых проектов без покупки лицензии? Можно ли купить лицензию в России? Как вообще с санкционными перспективами?


    1. xtraroman Автор
      01.07.2024 19:17
      +2

      Это 100% коммерческий проект разрабатываемый в России. Вы можете использовать продукт бесплатно в триальном режиме ограниченное время. Лицензия приобретается на год на разработчика. Разработчик этот тот, кто меняет код. Для CI/CD лицензия не нужна. Подробнее написали здесь https://eremexcontrols.net/articles/licensing.html. По вопросам приобретения лицензии пожалуйста напишите нашему менеджеру по продажам Илье https://t.me/i_skv


    1. xtraroman Автор
      01.07.2024 19:17
      +2

      Так же, у нас есть телеграм канал для технических вопросов https://t.me/emxControls


  1. alcotel
    01.07.2024 19:17

    2,25 градусов и 10,25 секунд на деление? Да, это очень удобно
    2,25 градусов и 10,25 секунд на деление? Да, это очень удобно
    75 на деление?
    75 на деление?
    Точно, 90° и 270° - вообще не существенные цифры для полярных координат.
    Точно, 90° и 270° - вообще не существенные цифры для полярных координат.

    Очень уё.. удобный и логичный авто-выбор шкалы. Моск из глаз совсем не вытекает, и нет желания отрывать руки за такое.

    Не только у Вас такое видел, кстати. Labview, например, таким же автоскейлом страдает. Видимо, в мире, где космические корабли бороздят просторы, и нейросети пишут код, это какая-то безумно сложная задача - расставить на линейке удобные цифры.

    sarcasm=off


    1. AlexeyStadnik
      01.07.2024 19:17
      +3

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


      1. alcotel
        01.07.2024 19:17

        Вот помню ещё, был у меня осциллограф Hantek MSO5202D. У него в принципе довольно глюкавая прошивка была, но безумные китайские программисты сделали переключение шкалы времени с множителями 2, 4, 8, 20, 40, 80... мкс/деление. На 8 я жутко плевался, и от осцилла в итоге избавился.

        Для десятичной системы счисления, логично, что удобна сетка с делителями числа 10 - в уме считать проще. В логарифмическом масштабе, бывает, удобно ещё число 3, т.к. примерно равно sqrt(10). Недесятичные данные (дата, время, угол) имеют свои нюансы.

        Итого вариантов оказывается не так много, в 99,9% всё уже придумано. Если что-то нужно совсем хитрое, то пользователь уже сам настраивает.

        В GNUPlot, например как-то же всё работает. А тут тем более не поделка программиста-самоучки, а

        Это 100% коммерческий проект

        За то, что люди кодят не подумав, я, например, не готов платить.


        1. AlexeyStadnik
          01.07.2024 19:17
          +1

          О да, знакомая боль...

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

          Это я к чему -- знаю ребят, абсолютно уверен, что там не "не подумав", а "не влезло по срокам, отложено на следующий мажор". И почти уверен, что там прямо сейчас рядом есть API чтобы самому закрутить шкалу как тебе хочется.


          1. alcotel
            01.07.2024 19:17

            Прошивка осцилла тоже обновляется, косяки исправляются. Там в основе обычный ARM с линуксом, обновляется с флешки. Но на конкретно эту модель производитель забил, и российский представитель мне тоже ничем не помог. Пришлось поискать тот, для которого на 4pda много прошивок выложено.

            Закрутить шкалу, естественно, самому можно. Но так-то и график самому нарисовать недолго.

            Надеюсь, допилят. Пожелаю авторам удачи, но пока пожалуй пройду мимо.


    1. xtraroman Автор
      01.07.2024 19:17
      +3

      Сейчас алгоритм расположения меток на шкале в зависимости от доступного места имеет недостатки. Мы улучшим его.