为什么锚窗格是透明的,而拆分窗格不是? (javafx)
Why is anchor pane transparent, while split pane is not? (javafx)
我想创建一个 window,它由两个锚定窗格组成。
我想为根锚定窗格设置背景图像,并将第二个放在它上面。所以我希望预览现在看起来应该是:一个白色的 space(第二个锚定窗格)被根锚定窗格的背景图像的边缘包围为一个框架。但是第二个锚窗格似乎是透明的,因为如果我进行测试,我可以看到整个背景图像。
未设置不透明度等...
(我不明白,因为例如分割平面不是透明的......虽然我开始明白,这些窗格和分割窗格在某些质量方面是不一样的,但我不知道为什么会这样。)
您怎么看,解决前一个问题的最佳做法是什么?谢谢!
Pane
子class默认是透明的。 Control
子class 由默认 CSS 样式表设置样式,因此它们的背景颜色由样式决定。 SplitPane
是一个控件,所以它的背景色是由default CSS stylesheet决定的。这会将背景颜色设置为查找颜色 -fx-background
(第 611 行),默认为基色 (#ececec
) 的较暗版本(26.4% 强度,第 102 行)。
更改锚定窗格背景的最佳方法是使用外部 css 文件。 (这意味着您可以将应用程序的 style/look 与实际应用程序代码分开。)向锚窗格添加一个 id:
AnchorPane maskingPane = new AnchorPane();
maskingPane.setId("masking-pane");
然后在您的外部 css 文件中,您可以执行
#masking-pane {
-fx-background-color: white ;
}
或者,如果您想获得与拆分窗格相同的颜色:
#masking-pane {
-fx-background-color: -fx-background ;
}
id
应该是唯一的;如果您有多个要制作相同颜色的窗格,则可以向它们添加样式 class:
AnchorPane maskingPane = new AnchorPane();
maskingPane.getStyleClass().add("masking-pane");
然后 css 看起来像
.masking-pane {
-fx-background-color: white ;
}
Oracle JavaFX 教程有 section on styling the application with CSS
我想创建一个 window,它由两个锚定窗格组成。
我想为根锚定窗格设置背景图像,并将第二个放在它上面。所以我希望预览现在看起来应该是:一个白色的 space(第二个锚定窗格)被根锚定窗格的背景图像的边缘包围为一个框架。但是第二个锚窗格似乎是透明的,因为如果我进行测试,我可以看到整个背景图像。
未设置不透明度等...
(我不明白,因为例如分割平面不是透明的......虽然我开始明白,这些窗格和分割窗格在某些质量方面是不一样的,但我不知道为什么会这样。)
您怎么看,解决前一个问题的最佳做法是什么?谢谢!
Pane
子class默认是透明的。 Control
子class 由默认 CSS 样式表设置样式,因此它们的背景颜色由样式决定。 SplitPane
是一个控件,所以它的背景色是由default CSS stylesheet决定的。这会将背景颜色设置为查找颜色 -fx-background
(第 611 行),默认为基色 (#ececec
) 的较暗版本(26.4% 强度,第 102 行)。
更改锚定窗格背景的最佳方法是使用外部 css 文件。 (这意味着您可以将应用程序的 style/look 与实际应用程序代码分开。)向锚窗格添加一个 id:
AnchorPane maskingPane = new AnchorPane();
maskingPane.setId("masking-pane");
然后在您的外部 css 文件中,您可以执行
#masking-pane {
-fx-background-color: white ;
}
或者,如果您想获得与拆分窗格相同的颜色:
#masking-pane {
-fx-background-color: -fx-background ;
}
id
应该是唯一的;如果您有多个要制作相同颜色的窗格,则可以向它们添加样式 class:
AnchorPane maskingPane = new AnchorPane();
maskingPane.getStyleClass().add("masking-pane");
然后 css 看起来像
.masking-pane {
-fx-background-color: white ;
}
Oracle JavaFX 教程有 section on styling the application with CSS