2017-01-20 6 views
1

Мой menu-button немного шире:Как оправдать ускорители пункта меню до различной ширины меню?

.menu-button { 
    -fx-pref-width: 250px; 
    -fx-background-color: #72b3c9; 
    -fx-padding: 5 16 5 16; 
} 

и меню с его элементов (и их ускорителях) отображается, как и ожидалось, как это:

default

Но когда я хочу, чтобы выровнять ширина menu-item к ширине menu-button, как это:

.menu-item { 
    -fx-pref-width: 250px; 
    -fx-pref-height: 40px; 
    -fx-padding: 5px 16px 5px 16px; 
} 

, то я не получаю акселераторы выравниваются справа от пунктов меню:

enter image description here

Что я хочу (и ожидать) является то, что ускорители Подписчиков ширины пункта меню и которые выровнены по правому краю их соответствующих пунктов меню, например:

enter image description here

Как я могу добиться этого?

Edit:

хак для увеличения левой метки отступов может быть использован, таким образом, заставляя акселераторы еще правее:

.menu-item .label { 
    -fx-padding: 0 120px 0 0; 
} 

Но, это жестко закодированы платформа -зависимый подход, который необходимо корректировать каждый раз, когда текст ярлыка элемента меню или акселератор изменяется.

+0

Вопрос, как вы отображаете два (текстовых) элемента в одной строке «menu-item»? –

+0

@BoHalim, это не два отдельных элемента, а пункт меню и его ускоритель. Ускоритель добавляется программно с помощью 'menuItem.setAccelerator (KeyCombination.keyCombination (keyCombination));'. – Saran

ответ

0

Вот решение, которое мне удалось достичь, например, с цветом по умолчанию он не появится, но если вы поместили два цвета differents (для и Background), это будет уродливо, пока это единственное, что я понял. Я знаю, что-то не хватает, но я не могу понять, что:

.menu-button { 

    -fx-pref-width: 250px; 
    -fx-background-color: #72b3c9; 

} 

.menu-item { 

    -fx-pref-width: 250px; 

} 

.menu-item > .label{ 

    -fx-pref-width: 200px; 

} 

Overview

Try совершенствовать это, с моей стороны я буду стараться найти лучшее решение, удачи!

+0

Я пробовал этот подход, но он заставляет ускорители выравниваться по левому краю вместо правого. Попробуйте установить второй ускоритель с более длинной комбинацией клавиш, например. «Ctrl + Shift + S», и вы увидите проблему. – Saran

Смежные вопросы