【问题标题】:JavaFX: Style undecorated Window with InnerShadow but without topJavaFX:使用 InnerShadow 但没有顶部的样式未装饰的窗口
【发布时间】:2015-02-16 06:08:48
【问题描述】:

我用自己的标题等创建了一个未装饰的窗口。为此我添加了一个样式:

.pane-basicwindow{
-fx-border-color: gray; 
-fx-border-style: solid;    
-fx-border-width: 1;
-fx-effect: innershadow(three-pass-box, rgba(100, 100, 100, 1), 10, 0, 0, 0);}

在这个帮助下,我创建了一个内部阴影。但我想在左侧、右侧和底部有内部阴影。因此,顶面应该没有阴影。我知道如果我改变了最后一个innershadow的值,我可以向上移动阴影的位置。比如这样的

-fx-effect: innershadow(three-pass-box, rgba(100, 100, 100, 1), 10, 0, 0, -4);

但在这种情况下,底部的阴影也会向上移动,因此这个阴影大于右侧/左侧的阴影。

所以我的问题是:必须做什么才能使左侧、右侧和底部的阴影具有相同的大小,而顶部的内部阴影是不可见的? 我在这里检查了很多其他问题,但找不到我的案例的答案。我也玩了一点开始,但也找不到结果。有人有想法吗?

【问题讨论】:

    标签: css javafx window


    【解决方案1】:

    您可以“简单地”重建阴影并将其添加到您喜欢的边框,如下所示:

    .pane-basicwindow {
        -fx-border-color:
            linear-gradient(to right, rgba(0, 0, 0, 0.2), transparent),
            linear-gradient(to top, rgba(0, 0, 0, 0.2), transparent),
            linear-gradient(to left, rgba(0, 0, 0, 0.2), transparent);
        -fx-border-style: solid;
        -fx-border-width:
            0 0 0 0.417em,
            0 0 0.417em 0,
            0 0.417em 0 0;
    }
    

    【讨论】:

    • 非常感谢。它工作正常:) 但是我用 px 代替 em 作为边框宽度,因为我得到了单位不匹配的错误。但并非一切都很好
    猜你喜欢
    • 2011-12-29
    • 2017-12-05
    • 2015-03-21
    • 2014-06-27
    • 1970-01-01
    • 2013-08-12
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多