我有一个 borderPane,顶部有菜单,左侧有一个网格,中间有一个图像。我希望图像的大小与边框中心相同,因为现在图像超出了我的网格。
我试过这个:
imageView.fitWidthProperty().bind(box.widthProperty());
其中 imageView 是我的图像的名称,box 是 BorderPane 对象。谢谢。
请参阅 JavaFX 功能请求RT-21337 添加 ImageViewPane 和 MediaViewPane 控件 https://bugs.openjdk.java.net/browse/JDK-8091216其中包含示例代码附件ImageViewPane
实施这将调整ImageView
它包含该区域可用的区域。为了获得您所需的行为might还需要落实计算最小宽度 http://docs.oracle.com/javafx/2/api/javafx/scene/layout/Region.html#computeMinWidth%28double%29 and 计算最小高度 http://docs.oracle.com/javafx/2/api/javafx/scene/layout/Region.html#computeMinHeight%28double%29 on the ImageViewPane
以便它们返回零而不是图像的最小尺寸。
现在图像超出了我的网格
这是因为当前图像的最小尺寸大于图像中心的可用空间。边框窗格 http://docs.oracle.com/javafx/2/api/javafx/scene/layout/BorderPane.html:
默认情况下,BorderPane 不会裁剪其内容,因此,如果子项的最小尺寸使其无法容纳在其空间内,则子项的边界可能会超出其自身的边界。
防止中心内容溢出边框的一些潜在替代方案:
- 手动设置一个clip http://docs.oracle.com/javafx/2/api/javafx/scene/Node.html#clipProperty%28%29在中心节点上以防止其溢出边界。
- 动态调整大小
ImageView
如在ImageViewPane
上面链接的示例。
- 放置
ImageView
in a 滚动窗格 http://docs.oracle.com/javafx/2/api/javafx/scene/control/ScrollPane.html.
- Use the css -fx-background-image 属性 http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html显示图像并动态调整图像大小,而不是使用
ImageView
.
- 在设置边框内容之前先设置边框窗格的中心,这样它将呈现在边框内容下方。
- 使用与边框窗格不同的构造(例如 HBox、VBox 等),当节点大于可用显示区域时,它们不会重叠其节点。
我试过这个:imageView.fitWidthProperty().bind(box.widthProperty());
我从提供的代码中猜测这是行不通的,因为图像的封闭框是某种动态可调整大小的窗格,因此框的最小宽度是由图像的宽度确定的,反之亦然。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)