我有一个带有菜单顶部的边框窗格,左侧有一个网格,中间有一个图像。我希望图像与边框中心的大小相同,因为现在图像越过了我的网格。
我试过这个:
imageView.fitWidthProperty().bind(box.widthProperty());
其中 imageView 是我的图像的名称,而 box 是 BorderPane 对象。谢谢。
请参阅 JavaFX 功能请求RT-21337 添加 ImageViewPane 和 MediaViewPane 控件,其中包含示例实现的代码附件,该示例ImageViewPane
实现会将ImageView
其包含的大小调整为该区域可用的区域。要获得所需的行为,您可能还需要在 上实现computeMinWidth和computeMinHeight以便ImageViewPane
它们返回零而不是图像的最小大小。
现在图像越过了我的网格
这是因为图像的最小尺寸当前大于BorderPane中心的可用空间:
默认情况下,BorderPane 不会剪切其内容,因此如果子项的最小尺寸使其无法适应其空间,则子项的边界可能会超出其自身的边界。
防止中心内容溢出边界的一些潜在替代方法:
ImageView
在上面链接的ImageViewPane
示例中动态调整大小。ImageView
放在ScrollPane中。ImageView
.我试过这个:
imageView.fitWidthProperty().bind(box.widthProperty());
我从提供的代码中猜测这不起作用,因为图像的封闭框是某种可动态调整大小的窗格,因此框的最小宽度由图像的宽度决定,反之亦然。