DataLife Engine / Исправление последствий обновления Авалонии

Исправление последствий обновления Авалонии

 

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

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

Ну во-первых, я обнаружил, что в моём контроле DesktopPage при назначении на кнопки обработчика события Click, назначенные функции не с того ни с сего перестали работать. Я просто недоумевал: почему? Потом я сменил данный обработчик на PointerReleased (отпускание указателя на элементе) - после этого появился отклик обработчиков событий. Но что ещё более странно, так это то, что тот же PointerReleased у меня переставал работать, если назначить к нему функцию-обработчик на кнопке в окне программы. Обработчик просто не срабатывал при отпускании указателя с кнопки. НО! Но есть одно но! Обработчик таки срабатывал при странном условии: если нажать на кнопку, затем, не отпуская её, перевести указатель за пределы кнопки и затем только отпустить указатель - то обработчик события, назначенный на кнопку сработает!!! 😮 Такой ерунды быть не должно, в любых программах при подобной последовательности действий функция элемента за пределами указателя не должна срабатывать! 😯😯😯

Я просто с этого улетаю. Что за кретины такие постарались и испортили авалонию, единственную адекватную платформу для разработки пользовательских интерфейсов на C# и .NET. Это просто жесть, ребята! И какие злоключения в дальнейшем меня ждут я знать не могу, это нужно ещё изведать. Хлебнуть из чаши неизвестности и ощутить тот вкус, который был кем-то заготовлен. Вот такие дела!

 

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

Да и ещё я сегодня оформил пару контрольчиков. Две палитры выбора цвета. Одну свою старенькую вернул - с четырьмя ползунками определения RGBA значения цвета, конечно с рефакторингом. Получилось на удивление быстро и главное без мучений по поискам "неработоспособностей". А ещё одну цветовую палитру я взял уже из прилагаемого к авалонии расширения. Наконец-то сообразил, какой файл стилей нужно подключить для того, чтобы он отображался. А то до этого я долгое время тупил, не понимал, почему встроенный в авалонию ColorPicker не отображается. Ну вот теперь понял и приладил. Теперь у меня куча палитр выбора цвета. Как будто я делаю фотошоп. Хотя, не скрою, хотелось бы, но не потяну в одиночку, без команды разработчиков. 

Н да ладно, на сегодня хватит. Приключения продолжим завтра. Я вот составил пошаговый список плана своей работы:

  1. Наладить стили для цветовой палитры авалонии
  2. Вернуть свою старую палитру
  3. Проверить контролы на наличие ошибок
  4. Сделать контрол Layout
  5. Сделать авторизацию пользователей в программе с помощью диалогового окна
  6. Сверстать интерфейс главного окна программы 

Первые три пункта я уже сделал. Завтра начну делать четвёртый. И на этом на сегодня у меня всё.

9-02-2023, 20:17
Вернуться назад