如何修改JavaFX中的上下文菜单尺寸?

问题描述 投票:0回答:1

使用 CSS,我可以修改除了 ChoiceBox 的大小之外的所有内容 上下文菜单对象。背景颜色、突出显示颜色、窗口中的位置以及复选标记颜色。上图是本机 Mac 应用程序(我正在尝试实现其样式),下图是我的 JavaFX 应用程序。我需要下拉菜单与原生菜单完全匹配。

native

JavaFX

另外,如果可能的话,可以修改上下文菜单复选标记的形状吗?我能够为复选框标记创建自定义 SVG。

java css svg javafx
1个回答
0
投票

哇..这是一个这样的时刻..但是我们开始了..这就是我的方法..我觉得创建一个暴露了大小属性的组件真的很不谨慎,而且你无法改变它..但这是我使用的一个技巧。 .

contextMenu.setOnShowing(ev -> {
    Bounds bounds = this.getLayoutBounds();
    contextMenu.setStyle( "-fx-min-width: " + bounds.getMaxX() + "px;");
    Label label = (Label) contextMenu.getScene().getRoot().lookup(".accelerator-text");
    label.setTranslateX(80);
});
contextMenu.show(this, Side.BOTTOM, 0, 0);

下面的结果..弹出的大小与抽屉项目的大小相同。 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.