Применить стиль css к строке сетки

Я использую GridPane в JavaFx, я хочу установить минимальную высоту всех строк на 30. Я знаю, как динамически изменить ограничение строки из кода. Но я хочу сделать это из css, чтобы применить его для всех GridPane.


person Lion_CH    schedule 03.03.2016    source источник
comment
Для этого нет свойства css, см. docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/   -  person fabian    schedule 03.03.2016


Ответы (1)


В зависимости от содержимого панели сетки и от того, что именно вы хотите сделать, это может сработать.

.grid-pane > * {
    -fx-min-height: 30 ;
}

Обратите внимание, что GridPane по умолчанию не имеет класса стиля, поэтому вам придется вручную добавить к нему класс стиля, чтобы это работало.

Это не совсем тот функционал, который вы просили. Что это на самом деле будет делать, так это установить свойство -fx-min-height на всех непосредственных дочерних узлах панели сетки равным 30. Таким образом, пока этот узел имеет такое свойство (т.е. пока дочерние узлы являются подклассами Region), каждый из узлов будет иметь минимальную высоту 30 пикселей. Это, конечно, заставляет каждую строку иметь высоту не менее 30 пикселей, но в зависимости от того, что вы размещаете на панели сетки, общий эффект может отличаться от установки ограничений строки.

person James_D    schedule 03.03.2016
comment
Переход с дочерними узлами - как предложил Джеймс - был бы лучшим способом имхо. Если вы действительно хотите использовать css для свойств ограничения высоты строки, вам придется расширить RowConstraints и добавить к нему обработку свойств таблицы стилей. Самый простой способ узнать, как это сделать, - посмотреть, как это делают официальные элементы управления javafx (например, строка класса Labeled 800 и далее) - person JohnRW; 04.03.2016