【问题标题】:JavaFX CSS change property of custom style class at runtimeJavaFX CSS 在运行时更改自定义样式类的属性
【发布时间】:2018-01-14 01:53:40
【问题描述】:

我对 CSS 非常陌生,因为我从未使用过网络语言,但对于 JavaFX 应用程序,我有一个带有 windows 10 UWP 主题的 css 样式表。默认样式类使用默认的 windows 灰色按钮主题,但我还为彩色组件创建了自定义样式类。

颜色作为默认样式的 .root 样式类中的变量,并在彩色样式的 .colored 样式类中被覆盖。

.root 
{
    -fill-color: #CCCCCC;
    ...
}

.colored
{
    -fill-color: #DD2867;
    ...
}

我现在想在运行时更改彩色样式颜色。 我知道 Node#setStyle(String) ,我可以在其中修改填充颜色,如下所示:

root.setStyle("-fill-color: #FF00FF;");

但这只会影响 .root 样式类中的颜色,而不影响 .colored 样式类。

您能告诉我一种在运行时直接修改样式类的属性的方法,还是一种更好的方法来使用默认样式和彩色样式?

提前致谢, 埃隆。

【问题讨论】:

    标签: java css javafx styling


    【解决方案1】:

    在根节点上定义另一种查找颜色,并在您的.colored 类中使用它:

    {
        -fill-color: #CCCCCC;
        -colored-fill: #DD2867 ;
        ...
    }
    
    .colored
    {
        -fill-color: -colored-fill;
        ...
    }
    

    然后您可以以相同的方式以编程方式更改该颜色:

    root.setStyle("-colored-fill: ... ;");
    

    【讨论】:

    • 非常感谢您。它完全符合我的要求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    相关资源
    最近更新 更多