Успешно доделал ColorPicker и начал работу над темами оформления
Ну вот, получилось! А я было и сомневался. Просто надо быть уверенным в себе и продвигаться, не останавливаясь перед сложностями. Наконец-то доделал свою палитру цветов и она работает нормально. Повозиться с утра пришлось ещё несколько часов. Но теперь всё работает как надо! В палитре цветов реализовал второй, более подходящий вариант "снимка" пикселя: с помощью классов SKWritableBitmap и SKBitmap. Первый вариант, если бы даже я корректно вычислил координаты, с которых надо снимать цвет пикселя, то моно платформенный вариант - это не решение.
Реализовал получение пикселя так: сначала создал экземпляр класса WritableBitmap, затем создал на нем рабочую поверхность, на которой отрисовал основной представленный цвет в виде прямоугольника, на который наложил пару градиентов с черным и белым цветами с переходом к прозрачному: затем из WritableBitmap получил поток и декодировал его в классе SKBitmap. Получилась виртуальная картинка, с которой я снял цвет нужного пикселя. Вот такой хитрый механизм Skia.
Функций рисования градиентов у объекта SKSurface (на котором и производится рисование) нет. Почему - для меня загадка. Почему разработчики библиотеки Skia не реализовали простые функции рисования градиентов мне совершенно не понятно. Что ж, чужая душа - потёмки, понять которые бывает невозможно. Пришлось рисовать эти самые градиенты с помощью линий.
Всё. С палитрой цветов закончено. Добавил её в контрол DataGrid. Но когда я её туда добавил, то я обнаружил один "косяк", над исправлением которого мне пришлось потратить добрых часа три. Дело было с потерей выбранного и сохраненного в свойстве модели-представления цветового значения после обновления PropertyGrid-а. Долго я копался, ну и, к счастью, путем немалых усилий, докопался. Теперь всё работает без багов.
Теперь я перешел к темам оформления интерфейса программы и на этом на сегодня остановился. Отложил на завтра. Тут тоже работы немало, всё нужно четко подогнать. Для этого надо расставить в окне контролы и тщательно подбирать цвета. Это задача на завтра.
Осталось сделать только один контрол - расширенный TabControl с возможностью перетаскивания и сортировки вкладок. Тут я не знаю, сколько провожусь с эти делом. Но я нашел пример в виде проекта C# и могу оттуда подтянуть реализацию таких вкладок. Ну а пока всё. Продолжение следует.

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