JavaFX FXML-SceneBuilder-Image-resizable
问题描述:
我的问题是,在使用JavaFX中的应用程序窗口大小操作期间,如何实现图像自动调整大小?可以直接在SceneBuilder中完成吗?JavaFX FXML-SceneBuilder-Image-resizable
答
它会将其WidthProperty
和HeightProperty
与窗口大小绑定。我们假设节点root
反映窗口的大小。
ImageView iv = new ImageView();
iv.fitWidthProperty().bind(root.widthProperty());
iv.fitHeightProperty().bind(root.heightProperty());
现在它与父母的属性划伤(root
)。您也可以选择不同的节点或执行一些计算来修改大小。
答
不使用ImageView
,但如果添加图像作为背景图像的Region
,这意味着Region
可以调整大小,因此可以将背景图片,如果使用适当的设置。例如。你可以使用下面的CSS属性包括在Region
的计算器标志:
-fx-background-image: url('http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo.png?v=9c558ec15d8a');
-fx-background-size: contain;
-fx-background-repeat: no-repeat;
-fx-background-position: center;
(在上面的代码中属性名和值由:
分隔和;
是不是值的一部分,这是写成你写在一个css样式表中的规则。)
你可以用stretch
替换contain
不保留高宽比。在这种情况下,您不需要-fx-background-position
属性。
关于使用的属性更多信息可以在CSS doc for Region
.
这应该只要你将它添加到正在调整的Region
工作中找到。如果要将图像调整为完整场景大小,则需要设置根目录Pane
处的属性。
除此之外,您可能需要编写自定义控件。 (AFAIK无法使用SceneBuilder中的表达式绑定。)
相关:[调整图像大小以适合父节点](http://stackoverflow.com/questions/12630296/resizing-images-to-fit-the-父节点)和[在JavaFX中调整窗口大小时如何调整图像大小](http://stackoverflow.com/questions/22993550/how-to-resize-an-image-when-resizing-the-window-in -javafx) – jewelsea