-fx-background-color用于确认对话框的OK按钮如果是变量则不起作用

时间:2017-02-08 18:19:52

标签: css javafx

a.css:

.dialog-pane .button { 
    -fx-background-color: -fx-base; -fx-text-fill: white; 
}

代码:

Alert confirmationDialog = new Alert(AlertType.CONFIRMATION); 
confirmationDialog.getDialogPane().getStylesheets().add("a.css");

当我打开确认对话框时,“取消”按钮的样式正确,但“确定”按钮没有。但是,如果我将-fx-background-color更改为实际颜色,例如:

.dialog-pane .button { 
    -fx-background-color: red; -fx-text-fill: white; 
}

两个按钮都将正确设置样式。我已经谷歌搜索了一段时间,我很难过。任何想法为什么会发生这种情况?

2 个答案:

答案 0 :(得分:0)

默认样式表通过更改-fx-base的定义来处理默认按钮:

.button:default {
    -fx-base: -fx-default-button;
}

因此,将背景设置为-fx-base不会删除默认的蓝色。

目前还不清楚你想要达到的目标,但你可能需要像

这样的东西
.dialog-pane .button { 
    -fx-background-color: -fx-base; 
    -fx-text-fill: white; 
}

.dialog-pane .button:default {
    -fx-background-color: -fx-default-button;
}

然后,只要您更改-fx-base,您也应该更改-fx-default-button

答案 1 :(得分:0)

我看到了我的困惑。我正在研究一个现有的样式表,它试图像变量一样使用-fx-base,即使它是现有属性的名称。