如何使用 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' 并且可以这样更改背景颜色。
正在尝试为我的 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' 并且可以这样更改背景颜色。