DataLife Engine / Успешно доделал ColorPicker и начал работу над темами оформления

Успешно доделал ColorPicker и начал работу над темами оформления

 

Ну вот, получилось! А я было и сомневался. Просто надо быть уверенным в себе и продвигаться, не останавливаясь перед сложностями. Наконец-то доделал свою палитру цветов и она работает нормально. Повозиться с утра пришлось ещё несколько часов. Но теперь всё работает как надо! В палитре цветов реализовал второй, более подходящий вариант "снимка" пикселя: с помощью классов SKWritableBitmap и SKBitmap. Первый вариант, если бы даже я корректно вычислил координаты, с которых надо снимать цвет пикселя, то моно платформенный вариант - это не решение.

Реализовал получение пикселя так: сначала создал экземпляр класса WritableBitmap, затем создал на нем рабочую поверхность, на которой отрисовал основной представленный цвет в виде прямоугольника, на который наложил пару градиентов с черным и белым цветами с переходом к прозрачному: затем из WritableBitmap получил поток и декодировал его в классе SKBitmap. Получилась виртуальная картинка, с которой я снял цвет нужного пикселя.  Вот такой хитрый механизм Skia. 

 

Функций рисования градиентов у объекта SKSurface (на котором и производится рисование) нет. Почему - для меня загадка. Почему разработчики библиотеки Skia не реализовали простые функции рисования градиентов мне совершенно не понятно. Что ж, чужая душа - потёмки, понять которые бывает невозможно. Пришлось рисовать эти самые градиенты с помощью линий.

Всё. С палитрой цветов закончено. Добавил её в контрол DataGrid. Но когда я её туда добавил, то я обнаружил один "косяк", над исправлением которого мне пришлось потратить добрых часа три. Дело было с потерей выбранного и сохраненного в свойстве модели-представления цветового значения после обновления PropertyGrid-а. Долго я копался, ну и, к счастью, путем немалых усилий, докопался. Теперь всё работает без багов.

Теперь я перешел к темам оформления интерфейса программы и на этом на сегодня остановился. Отложил на завтра. Тут тоже работы немало, всё нужно четко подогнать. Для этого надо расставить в окне контролы и тщательно подбирать цвета. Это задача на завтра.

Осталось сделать только один контрол - расширенный TabControl с возможностью перетаскивания и сортировки вкладок. Тут я не знаю, сколько провожусь с эти делом. Но я нашел пример в виде проекта C# и могу оттуда подтянуть реализацию таких вкладок. Ну а пока всё. Продолжение следует.

9-11-2022, 18:30
Вернуться назад