css - 如何在运行时覆盖(编辑)CSS 颜色?

标签 css javafx colors

我想让用户能够通过“设置”菜单编辑应用 UI 颜色。 默认颜色在 .css 文件中定义,例如:

.vertex {
   -fx-fill: rgba(64, 196, 255, 1);
}

在上面的示例中,我想将 -fx-fill color 覆盖为用户将从颜色拾取对话框中选择的任何颜色。是否可以在运行时更新 CSS 类属性?怎么样?

最佳答案

您可以在 CSS 文件中使用查找颜色:

.vertex {
    -vertex-fill: rgba(64, 196, 255, 1);
    -fx-fill: -vertex-fill ;
}

然后您可以在运行时使用内联样式对其进行修改。您可以对组件的任何祖先调用 setStyle(),它将应用于所有后代组件。例如。要将更改应用于样式类 .vertex 的场景中的所有内容,请设置场景根的样式:

Color selectedColor = colorPicker.getValue();
int red = (int) (255 * selectedColor.getRed());
int green = (int) (255 * selectedColor.getGreen());
int blue = (int) (255 * selectedColor.getBlue());
double opacity = selectedColor.getOpacity();
String userColor = String.format("rgba(%d, %d, %d, %f)", red, green, blue, opacity) ;
scene.getRoot().setStyle("-vertex-fill: " + userColor + " ;");

关于css - 如何在运行时覆盖(编辑)CSS 颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43455083/

相关文章:

html - 如何将背景位置分配为 'margin-right: 10px' 之类的东西?

jQuery 可排序 : element moves to top on drag

html - Bootstrap 下拉菜单隐藏导航链接

java - JavaFX 中的一个 ListView 中的 2 个不同列表除以 header

colors - 色彩理论 : How to convert Munsell HVC to RGB/HSB/HSL

ios - 如何更改 UIKit 中的 SF Symbol 图标颜色?

javascript - 在不更新 functions.php 中的脚本和样式版本的情况下调试 wordpress 主题

javafx - 从 TextField JavaFX 中删除默认焦点

java - 在 JavaFX 中将 ObservableList<CheckBox> 绑定(bind)到 HBox 的子项?

javascript - 试图获得特定的颜色,但我无法获得想要的结果