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

时间:2016-12-07 13:18:58

标签: java css javafx scenebuilder

尝试为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();
    }

enter image description here

2 个答案:

答案 0 :(得分:1)

我发现,使用滚动窗格时,它将在运行时动态地在其下创建堆栈窗格。使用风景秀丽的视图,我可以将样式类名称视为“视口”,并且可以通过这种方式更改背景色。

答案 1 :(得分:0)

设置窗口样式可能不起作用,因为您正在使用的操作系统不支持该样式。文档说明了这一点:

  

在某些平台上,装饰可能无法使用。

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