Как создать прозрачную сцену JavaFX с тенями только на границе?
Я прочитал много вопросов о прозрачности и тенях, но не думаю, что видел эту конкретную проблему.
Я могу успешно создать окно с прозрачностью и тенью, но не могу понять, как заставить цветную тень не влиять на цвет прозрачности.
Например, следующий код создает окно с серой прозрачностью и красной тенью. Тем не менее, красный цвет также влияет на прозрачность главного окна, но я хочу, чтобы тень выходила за границы окон.
Итак, что я получаю:
Но то, что я хочу, это: (отредактированное вручную изображение)
Есть идеи, как это сделать?
Мой тестовый код:
@Override
public void start(Stage stage) throws Exception {
stage.initStyle(StageStyle.TRANSPARENT);
StackPane stackPane = new StackPane();
stackPane.setStyle(
"-fx-background-color: rgba(255, 255, 255, 0.5);" +
"-fx-effect: dropshadow(gaussian, red, 50, 0, 0, 0);" +
"-fx-background-insets: 50;"
);
Scene scene = new Scene(stackPane, 450, 450);
scene.setFill(Color.TRANSPARENT);
stage.setScene(scene);
stage.show();
}