Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过CSS在JavaFX中缩放不变边界大小?_Java_Css_Javafx - Fatal编程技术网

通过CSS在JavaFX中缩放不变边界大小?

通过CSS在JavaFX中缩放不变边界大小?,java,css,javafx,Java,Css,Javafx,我试图为JavaFX节点指定一个边框大小,这样当节点的父节点被缩放时,生成的边框在屏幕上仍然占据相同的宽度 例如,我有 窗格容器=新建窗格(); 窗格nodeWithBorder=新建窗格(); nodeWithBorder.getStyleClass().add('my-node'); 在我的样式表中,我有一些类似于 .my-node { -fx-border-width: 2px; -fx-border-color: red; ... } 假设container具有sc

我试图为JavaFX节点指定一个边框大小,这样当节点的父节点被缩放时,生成的边框在屏幕上仍然占据相同的宽度

例如,我有

窗格容器=新建窗格();
窗格nodeWithBorder=新建窗格();
nodeWithBorder.getStyleClass().add('my-node');
在我的样式表中,我有一些类似于

.my-node {
   -fx-border-width: 2px;
   -fx-border-color: red;
   ...
}
假设
container
具有
scaleX=scaleY=1
,则
nodeWithBorder
的结果边框将以2px的宽度呈现

我想通过CSS实现的是当
container.setScaleX(2)时;container.setScaleY(2)
节点边界的大小应相应缩放,但渲染时使用相同的2px边界。


通过在代码中指定边框并在其宽度属性和比例属性之间创建绑定,我可以通过编程实现这一点。由于我需要在应用程序中的多个位置执行此操作,并且并不总是知道父树中的哪个级别的比例在变化,因此我想知道是否有一种方法可以通过CSS使用某种相对单位来指定此操作。

scale将缩放与节点相关的所有内容,包括边界,这就是它所做的。@jewelsea我希望有一个类似于单元规范的东西,它对应于实际的屏幕像素,而不是渲染像素(通过整个缩放机制)。我想在这方面你也不知道。公共规范中没有一个单元像我尝试的那样工作……是的,您的编程解决方案应该可以工作。我真的不知道如何以声明的方式实现这一点(我不认为有任何忽略缩放的神奇单位类型)。我能想到的一件事是尝试使用FXML指定边框,并使用FXML的功能根据父级的比例动态设置边框宽度(我没有尝试过,它可能不起作用,或者如果它起作用,可能不如编程解决方案)。