Я пытаюсь использовать spark.skins.spark.TitleWindowCloseButtonSkin
в пользовательском компоненте и сделать его тематически похожим на то, как он выглядит в TitleWindow
.Просто указав его в качестве класса скина для Button, это не проблема.У меня также есть стиль .css, примененный ко всем моим TitleWindow
классам, который влияет на кнопки закрытия в TitleWindow
.Если я установлю цвет хрома TitleWindow
в .css, то обложка кнопки закрытия также будет окрашена в соответствии с этим цветом.Мой пользовательский компонент также использует ту же ссылку на стиль, что и мои TitleWindow
s.Но экземпляр Button внутри моего пользовательского компонента не окрашивается.Поэтому, пока у меня есть синие TitleWindow
s с закрытыми кнопками синего цвета, у меня есть синий пользовательский компонент с закрытой кнопкой по умолчанию на сером фоне (при нажатии кнопки появляется серый фон).
Должно бытьчто-то происходит с TitleWindowSkin
и TitleWindowCloseButtonSkin
через механику окраски, но я не понимаю, что это такое.Как мне решить эту проблему?Мне нужно, чтобы стиль кнопки закрытия в моем пользовательском компоненте соответствовал стилю кнопки закрытия в моем TitleWindows
.
Вот изображение проблемы: ![TitleWindow close button on the left, custom on the right](https://i.stack.imgur.com/5d7X9.png)
TitleWindow
слева на обеих картинках.Пользовательский компонент находится справа.В левом кадре вы видите кнопку закрытия TitleWindow
в нижнем положении, обратите внимание, что ее нижнее состояние раскрашено в соответствии с темой TitleWindowSkin
.Справа вы видите состояние кнопки закрытия пользовательского компонента.Я не знаю, как раскрасить серый по умолчанию в соответствии с синей темой, примененной к пользовательскому компоненту.
Я уверен, что существует множество способов решить эту проблему.Я ищу самый «правильный» путь.Я не хочу жестко кодировать цвета, потому что позже придет реальный дизайнер и настроит .css.
PS Мой пользовательский компонент происходит от spark.components.Group.Может ли это быть проблемой ???Я должен также упомянуть, что обычные экземпляры Button, использующие искру по умолчанию ButtonSkin
do , похоже, должным образом оформлены в пользовательском компоненте (отчасти причина этой проблемы очень печальная).
РЕДАКТИРОВАТЬ: да, да, действительно, похоже, что первым шагом к решению является наследование от SkinnableComponent, а не группы или UIComponent ...