所以大家,这应该很简单,但我找不到答案。我对CSS的了解非常有限。
我想将ComboBox / ChoiceBox的“下拉按钮”或“箭头”移动到组件的左侧,而不是右侧。
我找到了一种让箭头透明的方法,如下所示:
.combo-box .arrow-button {
-fx-alignment: LEFT;
}
这是我将箭头移到左侧的天真方法:
{{1}}
那么,有谁知道这是否有可能实现? 怎么样?谢谢!
答案 0 :(得分:1)
ComboBox本身不支持样式属性“-fx-alignment” - 只有编辑器(textField)才支持。
您可以扩展ComboBoxBaseSkin(ComboBoxListViewSkin),覆盖#layoutChildren()并单独定位箭头按钮,或者只是更改节点方向,就像下面的示例一样。但是,更改节点方向会影响完整内容 - 意味着编辑器和弹出内容。您可以通过应用相反的(因为RTL)对齐或通过将NodeOrientation更改为LTR来修复编辑器,就像popop的ListView一样。
WITH cte AS
(
SELECT person_id, COUNT(DISTINCT student_id) AS r
FROM #PERSON
GROUP BY person_id
)
SELECT student_id, CASE WHEN r = 1 THEN 0 ELSE 1 END
FROM #PERSON p
JOIN cte c
ON p.person_id = c.person_id
-- ORDER BY student_id
答案 1 :(得分:0)
您必须设置NodeOrientation。问题是,NodeOrientation的StyleableProperty尚不支持,所以你不能用css设置它。
检查javafx.scene.Node中的第6136行 - >节点#nodeOrientationProperty
在代码或FXML中设置方向