1

我是 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 可以做到这一点吗?

4

1 回答 1

2

您提到了类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委托函数中指定确切的名称:

val myCssClass by cssclass("my-slightly-different-css-class")

另请注意,由于该backgroundColor属性接受多个值,因此您必须使用 将颜色“添加”到颜色列表中+=。这是所有接受多个值的属性的通用模式。

于 2017-05-20T07:09:55.707 回答