繁体   English   中英

如何删除JavaFX ContextMenu周围的阴影边框?

[英]How do I remove the shadow border around a JavaFX ContextMenu?

我一直在研究Button扩展类,单击该类时,在按钮的可配置侧/角上显示一个保持打开状态的弹出菜单(ContextMenu对象)。 构造函数采用枚举值(例如NORTH_LEFT),该值指示按钮在其上显示的一侧以及按钮和弹出窗口的边缘对齐。 换句话说,2应该始终以L形组合显示,而不是T形。

因此,当我想做类似EAST_BOTTOM的操作时,按钮和弹出窗口的底边都应该对齐,我想到这样的方法可以工作:

PopupMenu.show(this, Side.RIGHT, 0, this.getHeight() - PopupMenu.getHeight());

但是我得到的是一个弹出窗口,看上去比应该显示的要高得多。 这是因为PopupMenu.getHeight()调用返回的值比预期的要大。 我怀疑是因为它的尺寸中包括大阴影边框。 我注意到,这个半可见的边框在我的按钮上也延伸了一点,并防止鼠标单击在菜单附近的按钮边缘注册。 所以我有多个原因想要一个0宽度的边框。

我认为有一种方法可以通过CSS实现。 我尝试将-fx-background-insets和-fx-padding设置为0,但似乎都没有什么不同。 还有其他建议吗?

解决方案是添加-fx-effect: null; 到您的CSS的ContextMenu。 这将删除作为ContextMenus默认的modena.css的阴影效果。 一旦完成此操作,就可以将菜单正确放置在需要的地方。

此工作答案的功劳归功于JoséPereda-我们在上面的评论中进行了研究。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM