我是Kolin和TornadoFX的新手,目前正在尝试一些功能。
我想使用JFoenix-Library并使用TornadoFX的类型安全CSS功能设置其控件的样式。但是在给定JFoenix控件的CSS类的情况下,我不知道如何修改样式。

例如,JFXDecorator具有默认的CSS类jfx-decorator。要更改标题栏的背景颜色,我必须修改jfx-decorator-buttons-container类。如何使用TornadoFX做到这一点?在.css文件中,我只会使用

.jfx-decorator-buttons-container {
  -fx-background-color: red;
}

TornadoFX有可能吗?

最佳答案

您提到了jfx-decoratorjfx-decorator-buttons-container类,但是您的示例CSS使用了jfx-decorator-buttonscontainer类。我不确定您真正想要的类,但是我将添加后者,因为这将根据您的示例生成CSS。

class Styles : Stylesheet() {
    companion object {
        val jfxDecoratorButtons by cssclass()
        val container by cssclass()
    }

    init {
        jfxDecoratorButtons and container {
            backgroundColor += Color.RED
        }
    }
}

更新:您更改了问题中的代码,因此这是将产生该输出的更新版本:
class Styles : Stylesheet() {
    companion object {
        val jfxDecoratorButtonsContainer by cssclass()
    }

    init {
        jfxDecoratorButtonsContainer {
            backgroundColor += Color.RED
        }
    }
}

驼峰式选择器会自动转换为带连字符的小写字母。您还可以在cssclass委托(delegate)函数中指定确切的名称:
val myCssClass by cssclass("my-slightly-different-css-class")
还要注意,由于backgroundColor属性接受多个值,因此必须使用+=将颜色“添加”到颜色列表中。这是接受多个值的所有属性的通用模式。

09-28 12:07