JavaFX: использовать пользовательский узел в качестве переключателя свертывания/развертывания ветвей для TreeView

Можно ли заменить стрелку развертывания и свертывания TreeView пользовательской формой Node/ (вместо изображения)?


person Jens Piegsa    schedule 19.11.2013    source источник
comment
В частности, какой узел вы хотите? Свойство -fx-shape css стрелок предоставит основные формы svg.   -  person Uluk Biy    schedule 20.11.2013
comment
@UlukBiy: Позор мне, ты абсолютно прав. Спасибо! По умолчанию даже состоит из двух стилевых узлов. Однако единственное, с чем мне придется иметь дело, — это вращение стрелки.   -  person Jens Piegsa    schedule 20.11.2013
comment
Там также есть решение по умолчанию для ротации (каспийский): -fx-rotate: 90; :), см. .tree-cell:expanded .tree-disclosure-node .arrow   -  person Uluk Biy    schedule 20.11.2013
comment
@UlukBiy: Отлично, я уже думал, что должно быть что-то подобное. Если хотите, вы, конечно, можете улучшить свой комментарий до короткого приемлемого ответа. :-)   -  person Jens Piegsa    schedule 20.11.2013


Ответы (1)


Свойство -fx-shape css стрелок предоставляет основные формы SVG.

.tree-cell .tree-disclosure-node .arrow {
    -fx-background-color: -fx-mark-color;
    -fx-padding: 0.333333em; /* 4 */
    -fx-shape: "M 0 -4 L 8 0 L 0 4 z";    // <-- change this default triangle shape
}

.tree-cell:expanded .tree-disclosure-node .arrow {
    -fx-rotate: 90;                      // maybe another svg shape instead
}
person Uluk Biy    schedule 19.11.2013