JavaFX文档似乎暗示,如果属性在CSS根类中定义,它可以被场景中的任何对象引用:
.root样式类包括可由其他样式使用以提供UI的一致性的属性。例如,属性-fx-focused-base在.root样式中定义。此属性由其他UI控件的样式用作控件具有焦点时的颜色。
例如,在以下简单应用程序中:
public class Main extends Application {
@Override
public void start(Stage stage) throws Exception {
AnchorPane pane = new AnchorPane();
Scene s = new Scene(pane, 800, 600);
pane.getStylesheets().add("test.css");
pane.getStyleClass().add("test");
System.out.println("Root pane style classes:");
for (String clazz : pane.getStyleClass())
System.out.println(clazz);
stage.setScene(s);
stage.show();
}
public static void main(String[] args) {
Application.launch();
}
}
使用以下样式表 test.css:
.test {
-fx-background-color: -fx-base;
}
以下是输出结果:
Root pane style classes:
root
test
WARNING: com.sun.javafx.css.StyleHelper calculateValue Could not resolve '-fx-base' while resolving lookups for '-fx-background-color' from rule '*.test' in stylesheet test.css
我从警告中删除了文件路径
为什么无法解析-fx-base?它明显包含在caspian.css中...