惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
博客园 - 司徒正美
C
Check Point Blog
G
Google Developers Blog
The GitHub Blog
The GitHub Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
IT之家
IT之家
B
Blog
博客园_首页
量子位
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
J
Java Code Geeks
H
Help Net Security
A
About on SuperTechFans
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
D
DataBreaches.Net
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Библиотека EMX Controls для Avalonia UI — Обновление 1.4 ...
AlexZ71 · 2026-06-15 · via Все публикации подряд на Хабре

Простой

4 мин

76

Друзья, приветствуем вас! Наступило долгожданное лето. И, пока все не ушли в отпуска, мы спешим с новым анонсом. Сегодня у нас вышла версия 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. Оставайтесь с нами.