В бесконечном цикле и сложная задача с DockPanel
Последние две недели у меня выдались крайне непродуктивными. Меня понесло снова переделать программу (!!!!!), свой уже чистовик!!! Ну это ж надо, от себя даже не ожидаешь, куда тебя забросит волна. Опять, в сороковой раз, меня перестало устаивать то, что я сделал и снова меня понесло всё переделать. Вот я по маленьку эти две недели переделывал уже в конечную чистовую версию программы. Ну и вот буквально только-чо я закончил переделывать и готова новая версия программы. Нет, нет, не тот черновик. А переделанная версия чистовика!!! Ну вот по каким причинам меня опять на это кинуло? Ну во-первых, теперь в новом чистовике у меня чистая библиотека локализаций. Тащить весь хлам локализаций из черновика не имело смысла, так как многое поменялось и многие константы надписей в новой версии программы уже отпали. Ну и что-то, разумеется, поменялось.
Я давно уже не писал в этот раздел сайта постов. А зачем их было писать? О том, как я в очередной, десятый, двадцатый раз всё переделал? Мне уже об этом писать самому не интересно. Так что мой блог пока отдохнул от новых постов. Надеюсь, что дальше постов будет больше.
Да, и что то главное, что сподвигло меня снова переделывать программу? А это контрол для управляемого макета - DockPanel. Приметил я там одну библиотеку контролов - Eremex. Либа эта платная, но с шестидесяти-дневным бесплатным периодом. Но, вроде как, пользоваться ей можно и после этих шестидесяти дней, но без получения обновлений. Там есть контролы, которых мне очень не достает. Это тот же управляемый макет и другие контролы, которые отсутствуют в библиотеке Semi. Возникла мысль: а не убрать ли мне Semi и поставить Eremex, чтобы избавить себя от долгой и изнурительной работы по самостоятельному изготовлению данных контролов. Ну, решил попробовать. Правда, мне пришлось бы с Eremex принести в жертву многие свои уже сделанные контролы. Впоследствии от этой жертвы я отказался и решил использовать одновременно и Semi и Eremex.
Что же получилось с Eremex? Да ни фига! Там возникла такая проблема. Контролы там мощные и стильные. Хотя в стиле для меня пока что не нашлось полностью идеальной либы для Авалонии. Так что мне стили всегда приходится докручивать до нужной мне кондиции. Приближен к идеальному варианту только Semi (из всех библиотек под Авалонию). Но и там мне пришлось немало заморочиться с доработкой стилей под свою программу и под свой стиль.
Проблема же в том, что ни в одной библиотеки, ни в Semi, ни в Eremex нет такого набора контролов, который бы удовлетворял все нужды. В одной библиотеке есть одни контролы, но не хватает других. В другой библиотеке ситуация аналогичная - есть то, чего нет в одном случае, но не хватает ещё чего-либо. Ну вот просто нет пока для Авалонии идеальной библиотеки контролов, в которой было бы всё. Вот такие пироги. Просто нет и всё тут. Попытка использовать вместе эти две библиотеки потерпела фиаско. Потому что Etremex переопределяет стили некоторых дефолтных контролов Авалонии. А поскольку либа закрытая, то поменять тут ничего нельзя. И притом переопределяет стили не всех контролов а только некоторых! Так что чисто только Eremex невозможно было использовать в моём случае. Не всё стилизуется. Вот такая вещь - как самостоятельная и полная библиотека Eremex мне не подходит, а как дополнение для Semi тоже не годится - стили некоторых контролов ломаются и переопределить или закрыть для этого переопределения ничего нельзя! Так что вот так. Одно другое не дополнит в данном случае.
Поскольку Eremex ломает стили контролов, мне пришлось от него отказаться и вернуться практически к тому же, на чем я останавливался пару недель назад. Вот такая незадача! А остановился я на контроле настраиваемого макета - DockPanel, который я хотел взять из Eremex, но не судьба.
Я видал и контрол Avalonia.Dock в nuget. Отдельный контрол-расширение. Но назвать его альтернативой - значит покривить языком. Это полная хрень. И выглядит убого, стиль жуткий и не современный, и функционал не такой, не хватает там некоторых возможностей, то бишь гибкости управления. Да и он выдавал ошибки и крэшился в демо-версии с репозитория на github. Короче, забагованный ужас а не вещь. Такую поставить в свою программу, значит посрамить свою программу. Да. Тут вариантов нет. Только работать над своей реализацией контрола, сколько бы сложным это не было. Так что вот так.
Ну и моя следующая работа - это DockManager. Собственной реализации. Потому что в моём случае альтернатив нет. И мне придется для этого постараться. Так что вот так.
Ну и на этом это всё. Пока что. Так что до новых постов и до новых свершений.

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.