DataLife Engine / Завершение реализации механизма стыковки макета

Завершение реализации механизма стыковки макета

 

Работа над макетом продолжается. Уже который день. Или уже надо говорить уже какую неделю. Если мне не изменяет память, то уже где-то третья неделя пошла. Правда, много дней у меня из этих недель были зависания, так что не все эти дни сплошь были в работе. Ну а что я сегодня завершил в этом макете - так это реализацию механизма стыковки. Тут всё сносно работает. Вкладки можно сортировать, панели можно перетаскивать и стыковать, панели можно сортировать, группировать и разгруппировать. И панели можно ещё открывать в отдельных окошках (сегодня этот функционал я так же поправил и дополнил, то есть в окнах можно было открывать только панели, а теперь ещё и целые группы с панелями). Добавил функциональности к самим панелям. Вот, в контекстных меню стало больше пунктов. Добавил туда команды с сохраняемыми настройками. И теперь всё выглядит и работает круто. Не идеально, конечно. В некоторых случаях встречаются и косяки, но не столь критичные.

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

 

Да, группировать и расставлять панели теперь можно как угодно. Тут ограничений таких нет, как в моей черновой версии программы. Там всё было довольно скудно на функционал. Перетаскивать панели можно было лишь только по горизонтали либо по вертикали. А здесь можно с четырех сторон любую панель пристыковать к любой другой панели. При этом, если сторона стыковки не совпадает с ориентацией панели в группе, то создается новая группа с данной ориентацией и панель вместе с опорной панелью перемещаются в новую группу. Во как. И выглядит все довольно неплохо, по-современному. И без этих раздражающих и съедающих место на клиентской области окна промежутки между панелями, как было в этой готовой версии для авалонии "Dock.Avalonia". Так что вот так. Но, увы, работа пока не закончена. Меня ещё ожидает работа над реализацией механизма сериализации настроек панелей макета с возможностью восстановления вида макета из ранее сохраненных настроек. Надо ожидать, что это тоже непростая работа. Но мне осталось сделать лишь один рывок к финишу завершения этой нескончаемой работы над самым пожалуй сложным контролом программы. Так что вот так.  

Ну и вот, на этом я заканчиваю работу сего дня и перехожу к другим делам. Когда ничто тебя не отвлекает, то можно что-то сделать. Ну и на этом у меня пока всё. И как всегда, до новых постов, до новых свершений.

2-08-2024, 18:17
Вернуться назад