如何在JavaFX中仅为一侧设置背景插图?

How to set background insets only for one side in JavaFX?

提问人:Pavel_K 提问时间:11/15/2023 更新时间:11/15/2023 访问量:68

问:

此CSS代码(取自此处):

.custom-node {
    -fx-background-color: skyblue, derive(skyblue, 25%), derive(skyblue, 50%), derive(skyblue, 75%);
    -fx-background-insets: 20, 40, 60, 80;
    -fx-border-color: red; /* set border to red*/
    -fx-border-width: 3; /* border width 3px */
}

给出这样的结果:

enter image description here

现在我只想把这个“颜色阶梯”(!)用于底部。所以我将插图设置为

-fx-background-insets: 0, 0, 20 40 60 80, 0;

但它没有用 - 整个节点都是一种颜色。谁能说怎么做?

爪哇 JavaFX

评论

1赞 trashgod 11/15/2023
由于您手头有工作代码和图像,因此您可以回答自己的问题
2赞 James_D 11/15/2023
此处记录了这些属性的工作原理

答:

4赞 jewelsea 11/15/2023 #1

您定义了四种背景颜色。

每个逗号分隔值 for 定义相应背景色的插图。-fx-background-insets

-fx-background-color: skyblue, derive(skyblue, 25%), derive(skyblue, 50%), derive(skyblue, 75%);
-fx-background-insets: 0 0 20 0, 0 0 40 0, 0 0 60 0, 0 0 80 0;

背景插图的语法说明在 CSS 参考中。

一系列大小值或一组四个大小值,用逗号分隔。单个尺寸值意味着所有插图都相同。否则,每个插图的四个值按上、右、下、左的顺序给出。系列中的每个逗号分隔值或值集都适用于相应的背景色。

或者,您可以使用线性渐变和单个背景。