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