JavaFX CSS theming через @import и переменные
Я начал присваивать переменные часто используемым цветам в моем JavaFX CSS и ссылаться на переменные, а не на цветовые константы:
* {
theme-backgroundDark: #335588;
}
#messageListPane {
-fx-background-color: theme-backgroundDark;
}
Теперь я хочу взять блок, где я определяю имена переменных цвета, и переместить его в отдельный .файл CSS. Это позволит мне поменять местами разные .css файлы во время выполнения для изменения темы приложения:
Theme1.css
* {
theme-backgroundDark: #335588;
}
Главное.css
@import url( "/styles/Theme1.css" );
#messageListPane {
-fx-background-color: theme-backgroundDark;
}
Но когда я делаю это, JavaFX невозможно найти переменные во время выполнения:
WARNING: Could not resolve 'theme-backgroundDark' while resolving lookups for '-fx-background-color' from rule '*#messageListPane ' in stylesheet file:/C:/xxxx/styles/Main.css
Это не проблема с утверждением @import
; у меня есть другие @import
s, которые определяют селекторы классов, и те прекрасно подобраны в Main.css
. Похоже, это как-то связано с селектором подстановочных знаков * { ... }
.
Так почему же именованные переменные цвета в селекторе подстановочных знаков работают в том же CSS, но не при импорте из другого CSS?