DataLife Engine / Разбираемся с контролами для Avalonia UI

Разбираемся с контролами для Avalonia UI

 

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

Присмотрел я ещё несколько дней назад довольно неплохой набор стилей для контролов авалонии под названием «Suki UI», где имеются также и добавочные контролы, например, так необходимый для этой моей программы контрол «PropertyGrid». Но встретился я и с разочарованием в этом наборе. Имеется там контрол под названием «DesktopPage», который отображает оконную рамку с кнопкой закрытия окна. Для простых диалоговых окон - это лаконичный в плане дизайна контрол, но есть одна проблема, или недостаток: кроме кнопки закрытия окна там ничего больше нет. То есть нет возможности сворачивания, разворачивания и минимизации окна. А для главного окна это решение не подходит. Так что придется мне лепить свой контрол, в котором эти кнопки будут присутствовать.

Далее, я подобрал и опробовал контрол для вывода сортируемых, стыкуемых и группируемых панелей (докпанель) под названием «UniDock». Будет очень похоже на Microsoft Visual Studio (которым я не пользуюсь, к слову 😉) Очень занятная вещь. Над ней мне предстоит ещё поэкспериментировать. Сегодня опробовал только часть её возможности, уже время дня подходит к концу и голова уже устала, разбираться дальше буду потом. Это неплохой контрол, но и там есть тоже проблемы. Ну, первая из проблем - это отсутствие возможности убрать заголовок для стыкуемых панелей. Интерфейс моей программы будет иметь такую конфигурацию, при котором мне понадобится пустой элемент без заголовка. Тут предстоит помозговать над тем, как это реализовать. Что ж, утро вечера мудренее. Вторая проблема - возможность смены языковой локализации. Точнее, отсутствие этой возможности. Но тут, может быть, я ещё не до конца разобрался с тем, как это сделать. Худший вариант, если придется использовать костыльный метод, и применять ручную выборку текстовых XAML-элементов для принудительной смены локализованного текста для них.  

Чем хороша авалония, надо заметить. Там есть визуальный инструмент для отладки - просмотр дерева XAML-элементов окна программы. Это очнь помогает при вёрстке интерфейса программы. Это похоже на отладочную консоль в браузерах Chrome или Mozilla Firefox, при отладке приложений на jаvascript. 

Ну на сегодня пока всё. И ещё. Не удержусь отметить изящества XAML кода, с помощью которого при написании программ на C#, можно строить графические интерфейсы.

 

27-09-2022, 18:49
Вернуться назад