JavaFX ImageView在StackPane中调整大小

时间:2012-11-19 13:50:41

标签: imageview javafx-2

我有一个在StackPane中调整ImageView大小的问题: 如果StackPane是根容器,我将图像的高度和宽度绑定到StackPane,一切都很好。

<StackPane id="StackPane" fx:id="stack" prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: lightgreen;" styleClass="mainFxmlClass" xmlns:fx="http://javafx.com/fxml" fx:controller="javafxapplication8.FXMLController">
  <children>
    <ImageView fx:id="image" fitHeight="100.0" fitWidth="300.0" pickOnBounds="true" preserveRatio="true" />
  </children>
  <stylesheets>
    <URL value="@fxml.css" />
  </stylesheets>
</StackPane>

但是,如果我将这样的堆栈窗格放在例如网格中,则图像不会正确调整大小。 在我读到的时候,ImageView是不可调整大小的问题。有什么方法可以调整它吗?或者你能给出一些如何调整ImageView大小的建议吗?

1 个答案:

答案 0 :(得分:2)

听起来您正在尝试为StackPane创建背景图像。在这种情况下,通过CSS应用图像可能是比ImageView更好的使用途径。

.stack-pane {
  -fx-background-image: url("flower.png");
  -fx-background-size: cover;
}

请参阅JavaFX CSS参考指南中区域规范的background images部分。

制作ImageView itself resizable is an unresolved major issue。链接的问题包括一个简单的解决方法的代码 - 一个可调整大小的ImagePane包装一个Image来填充可调整大小的窗格。