Глубокое разочарование: целый день потрачен впустую
Дорогие мои читатели,сегодняшний день принес мне одно из самых больших разочарований, из каких мне доводилось испытывать при написании программ. Целый день сегодня у меня вылетел в трубу. Попытка приладить Avalonia.Dock к интерфейсу главного окна моей программы потерпела полное фиаско. Почти двенадцать (!) часов я потратил ради того, чтобы к тому моменту, как я пишу данный пост, выяснить, что эта штука не будет работать корректно и мне совершенно не подходит. Эдакая выделка криворукого говнокодера, который таким образом решил поиздеваться над людьми или же просто не заметил собственной некомпетентности. Я сейчас говорю об авторе данного смердячего творения под названием Avalonia.Dock.
Вот что получилось у меня, когда я начинал прилаживать этот контрол к своему интерфейсу:
Ну, вроде бы, всё довольно неплохо. Что-то выводится, что-то работает. На тот момент у меня были мысли: настроить стили для этих элементов, чтобы контрол гармонично вписывался в дизайн моей программы. Перетаскивание стыкуемых частей макета работает но с огрехом: при самом перетаскивании не отображается ни элемент-помошник при перетаскивании ни даже курсор не меняется на индикатор, указывающий на то, что происходит процесс перетаскивания элемента. То есть пользователь даже может не догадываться о том, что он что-то перетаскивает в окне программы. Вот он и первый косяк. Ладно, думаю я, поправлю стили, что-нибудь придумаю, как всегда. Как нибудь налажу дело. Едем дальше. Вот что получилось, когда я закончил корректировать настройки и стили этого контрола:
Выглядит довольно-таки неплохо, я навел немного красоты и практически хорошо адаптировал стили контрола под интерфейс программы. Вид действительно гармоничный, смотрится вполне себе, в чём же подвох, спросите вы? Сначало я разочаровался в том, что в заголовки для панелей тут нельзя встроить иконки. Обходиться приходилось только простым текстом. Ну ладно, вздохнул я, придется помириться с тем, что будет без иконок в заголовках панелей. Да вот только потом выяснилось, что это лишь цветочки, но ягодки (которые поставили крест на этом контроле) были впереди.
Так в чем же тут дело? И так выглядит и смотрится прилично, можно обойтись и без иконок. Смотрится-то смотрится. Да вот беда. Видите заголовки панелей? Да, они пустые. Не видно ни зги. Всё дело в том, что не работают привязки и я не могу вывести значения свойств модели-представления, которая подключена к виду окна. Не работают привязки на в самом контроле, ни во вложенных в панели элементах. Это поставило крест на использовании данного контрола. Я не смог понять, в чем тут дело, но я вынужден был отказаться от использования этого запутанного и невнятного убожество криворукого говнокодера.
Не знаю, было у меня какое-то смутное предчувствие, что с этим у меня не получится. И вот пожалуйста, не получилось. Всё таки нужно порой прислушиваться к своим предчувствиям. Чувствуешь, что будет подвох - будь к нему готов. Вот то-то оно и получилось. Вот теперь напляшемся с созданием собственного стыкуемого и настраиваемого контрола.
И опять двадцать пять: придется мне лопатить собственную реализацию, для того, чтобы что-то работало. Сегодня я очень огорчен. Целый день потрачен впустую и не достигнуты никакие результаты. И всё из-за какого-то дятла, который сделал такой вот программный компонент интерфейса и это оказалось лажой, которая подставляет людей. Не иначе какое-то издевательство. Хотя я знать наверняка и не могу. Возможно, я в чем-то не разобрался. хотя я потратил на это целый длинный день. Не знаю, в чем причина неудачи. Но эта штука по любому мне не подходит. И я в сердцах и с глаз долой выкинул этот смердячий контрол из библиотек своей программы. Буду пилить всё сам. Уже который раз удостоверяюсь в истинности выражения: если что-то хочешь сделать хорошо - делай это сам!
Ну что ж. Завтра возьму перерыв от интерфейса программы и реализую C# класс для работы с файловым кешем - Cache. И заодно, когда его сделаю, прилажу функции кеша к сохранению настроек размеров и положения для своего пользовательского контрла CustomWindow и других своих контролах, дге я предполагал использовать кэширование. Вот этим завтра и займусь.



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