如何使用 javafx/css 和 fxml 将 StackPane 节点的背景颜色设置为透明

How to set background color of StackPane node to transparent using javafx/css and fxml

正在尝试为我的 BorderPane 创建阴影。我需要使用 StackPane 来为投影留出空间。问题是我似乎无法将 StackPane 的背景设置为透明。我为 primiaryStage 使用透明样式。

还有其他使用 javaFX 的示例,但我无法在使用 fxml 时弄明白。

.StackPane{
  -fx-background-color: transparent;
}

我的 BorderPane 后面仍然显示白色背景

public class Main extends Application {


    public static Stage Window;

    @Override
    public void start(Stage primaryStage) throws IOException{
        Main.Window = primaryStage;
        Window.initStyle(StageStyle.TRANSPARENT);
        Window.setResizable(false);
        FXMLLoader loader = new FXMLLoader(getClass().getResource("Homepage.fxml"));
        Parent root = loader.load();    
        Window.setScene(new Scene(root));
        root.getStylesheets().add(getClass().getResource("main.css").toExternalForm());

        Window.show();
    }

设置 window 样式可能不起作用,因为您正在处理的 OS 不支持该样式。文档是这样说的:

On some platforms decorations might not be available.

但是对于堆栈窗格的解决方法,您应该提供您的目标示例图像。现在还不清楚你到底想完成什么。

我发现在使用滚动窗格时,它会在运行时在其下方动态创建堆栈窗格。使用风景视图,我能够看到样式 class 名称为 'viewport' 并且可以这样更改背景颜色。