使用 CSS,我可以修改除了 ChoiceBox 的大小之外的所有内容 上下文菜单对象。背景颜色、突出显示颜色、窗口中的位置以及复选标记颜色。上图是本机 Mac 应用程序(我正在尝试实现其样式),下图是我的 JavaFX 应用程序。我需要下拉菜单与原生菜单完全匹配。
另外,如果可能的话,可以修改上下文菜单复选标记的形状吗?我能够为复选框标记创建自定义 SVG。
哇..这是一个这样的时刻..但是我们开始了..这就是我的方法..我觉得创建一个暴露了大小属性的组件真的很不谨慎,而且你无法改变它..但这是我使用的一个技巧。 .
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);