JavaFX图像填充

3

简单的问题(希望如此)。 在JavaFX中,是否可以使用CSS为ImageView添加内边距?我尝试了insets、padding等方法,但都没有成功。

另外,是否可以在Text对象上添加相同的效果。 已经在Google上探索了一下,但没有什么太大的收获,这并不是什么大问题,只是使事情变得更加干净整洁。

谢谢。

1个回答

6

-fx-paddingRegion的属性。

ImageView不是一个Region,因此不能直接在ImageView上使用padding。但是,您可以将ImageView放置在Region中,以提供围绕ImageView的填充区域。

以下是一个示例,其中使用了StackPane(它是一个具有样式能力的Region)。填充在FXML中指定,但同样适用于CSS。

sample

在示例中,图像周围的绿色边框是填充。

<?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)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接