2016-12-02 4 views
1

У меня есть этот кусок кода, который отлично работает.Масштабирование фонового изображения JavaFX

gamePane.setPrefSize(game.getMaxX(), game.getMaxY()); 

Однако фоновое изображение моего gamePane (который является Pane) имеет автоматически масштабируется с ним, и я не хочу этого. Я искал свойства масштабирования фона, но ничего не нашел. Изображение первоначально применяется с css.

Редактировать: Я нашел решение!

Что мой CSS код был изначально:

.background { 
    -fx-background-image: url("../images/background.png"); 
} 

То, что я сделал это, чтобы быть:

.background { 
    -fx-background-image: url("../images/background.png"); 
    -fx-background-size: 1024 768; 
    -fx-background-position: center; 
} 

ответ

0

По умолчанию фоновое изображение не масштабируется, но повторилась, которые можно предотвратить с помощью no-repeat в -fx-background-repeat:

@Override 
public void start(Stage primaryStage) { 
    Pane root = new Pane(); 
    root.getStyleClass().add("container"); 

    Scene scene = new Scene(root); 

    primaryStage.setScene(scene); 
    scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm()); 
    primaryStage.show(); 
} 

style.css

.container { 
    -fx-background-image: url('http://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo.png?v=9c558ec15d8a'); 
    -fx-background-repeat: no-repeat; 
} 
Смежные вопросы