如何在TornadoFX样式声明中设置TextArea嵌套.content的背景色?
在TornadoFX中为TextArea设置背景色的解决方案
嘿,我来帮你搞定这个问题!你已经知道原生JavaFX里可以通过如下CSS代码给TextArea的内容区域设置背景色:
.text-area .content { -fx-background-color: blue ; }
那在TornadoFX的样式声明里,我们可以利用它的style DSL提供的child()方法,精准定位到TextArea内部的.content子节点,从而实现同样的效果。修改你的代码如下:
override val root = gridpane { orderTextArea = textarea { isEditable = false prefWidth = 900.0 prefHeight = 700.0 isWrapText = true //textProperty().bind(viewModel.orderText) style { textFill = Color.YELLOW // 定位到TextArea的.content子节点并设置背景色 child(".content") { backgroundColor += Color.BLUE } } } }
简单解释一下:TornadoFX的style DSL允许我们通过child()方法来指定目标节点的后代元素,就像CSS里的后代选择器逻辑一样。这里我们通过child(".content")选中了TextArea内部负责显示内容的容器,然后给它添加背景色属性,和你熟悉的原生CSS效果完全一致。
内容的提问来源于stack exchange,提问作者Marco
相关产品推荐
相关产品推荐

