【发布时间】:2015-09-25 21:49:00
【问题描述】:
简单的问题(希望如此)。 是否可以在 JavaFX 中使用 CSS 向 ImageView 添加填充?我已经尝试过插入、填充等,但没有任何运气。
添加文本对象也可以达到同样的效果。 探索过 Google,但收效甚微,不是破坏交易,只是让事情变得更干净一些。
谢谢。
【问题讨论】:
简单的问题(希望如此)。 是否可以在 JavaFX 中使用 CSS 向 ImageView 添加填充?我已经尝试过插入、填充等,但没有任何运气。
添加文本对象也可以达到同样的效果。 探索过 Google,但收效甚微,不是破坏交易,只是让事情变得更干净一些。
谢谢。
【问题讨论】:
-fx-padding是 Region 的属性。
ImageView 不是区域,因此,您不能直接在 ImageView 上使用填充。但是,您可以将 ImageView 放置在一个区域中,以在 ImageView 周围提供一个填充区域。
这里是一个使用 StackPane(支持样式的区域)的示例。填充在 FXML 中指定,但同样适用于 CSS。
在示例中,图像周围的绿色边框是填充。
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>
<StackPane id="StackPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="-1.0" prefWidth="-1.0" style="-fx-background-color: forestgreen;" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2">
<children>
<ImageView fitHeight="150.0" fitWidth="200.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="http://www.corwellphotography.net/image/2223982.jpeg" />
</image>
</ImageView>
</children>
<padding>
<Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
</padding>
</StackPane>
由于 StackPane 或 Region 可以包含任何类型的节点,因此该技术同样适用于任何类型的节点(不仅仅是 ImageViews)。
【讨论】: