使用-fx-background-size时背景不居中:覆盖-fx-background-position:center center

时间:2017-09-06 14:00:47

标签: java css javafx background background-size

我已经使用在我的JavaFX项目中链接的CSS在FXML中的BorderPane上成功设置了背景图像。但是,使用cover会将背景图片的左上角粘贴到BorderPane的左上角。封面本身可以很好地缩放图像,但图像不会像它应该的那样居中。

我发现有多个问题和答案说你需要使用-fx-background-position: center center;,但它根本没有帮助我。我在我的CSS的每个位置都实现了它,并且直接在FXML中实现它,但没有任何成功。我尝试使用cover以外的选项,例如auto,并且它们确实将背景居中,但是它们裁剪图像而不是像cover那样缩放图像。

我的代码的相关部分如下。

CSS:

#login{
    -fx-background-image: url("login-background.jpeg");
    -fx-background-position: center center;
    -fx-background-repeat: no-repeat;
    -fx-background-size: cover;
}

FXML:

<?xml version="1.0" encoding="UTF-8"?>

<BorderPane fx:id="localRoot" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="...">
   <center>
      <HBox alignment="CENTER" BorderPane.alignment="CENTER">
         <children>
            .
            .
            .
         </children>
      </HBox>
   </center>
</BorderPane>

爪哇:

@FXML
private BorderPane localRoot;

public void initialize() {
    localRoot.setId("login");
}

0 个答案:

没有答案