FXML(JavaFX)中的图像标记,如何使用css设置大小?
我正在学习将CSS与FXML结合使用,但在设置图像大小时遇到了问题。我有四张图片,我希望它们的大小都一样。但是我不能让CSS工作。我的FXML如下FXML(JavaFX)中的图像标记,如何使用css设置大小?,java,css,javafx,fxml,Java,Css,Javafx,Fxml,我正在学习将CSS与FXML结合使用,但在设置图像大小时遇到了问题。我有四张图片,我希望它们的大小都一样。但是我不能让CSS工作。我的FXML如下 <HBox styleClass="sidebar-item" > <ImageView styleClass="icon" preserveRatio="true"> <Image url="@assets/settings.png" />
<HBox styleClass="sidebar-item" >
<ImageView styleClass="icon" preserveRatio="true">
<Image url="@assets/settings.png" />
</ImageView>
<Label text="%settings" />
</HBox>
实际上什么也没发生。大小保持不变。但是,如果在ImageView xml标记中添加requestedHeight=“20”和requestedWidth=“20”,则图像会调整大小
<HBox styleClass="sidebar-item" >
<ImageView styleClass="icon" preserveRatio="true">
<Image url="@assets/settings.png" requestedHeight="20" requestedWidth="20"/>
</ImageView>
<Label text="%settings" />
</HBox>
使用css不可能达到同样的效果吗?我找不到任何与requestedWidth相关的CSS标记,也不允许在图像标记上设置CSS类。只有ImageView标记。不幸的是,
ImageView
唯一可设置样式的属性(除了从节点继承的属性)是图像
属性(尽管它比内部属性稍微复杂)。这意味着您不能通过CSS设置属性,例如fitWidth
。您也不能通过CSS影响图像本身,因为它甚至不可设置样式;最重要的是,要求的宽度/高度值在施工期间使用,不会随时间而改变。恐怕,除了编写包装类之外,您还必须继续使用FXML或Java来配置映像的大小。好吧,至少我知道不要再在上面浪费时间了。谢谢。不幸的是,ImageView
的唯一可设置样式的属性是image
属性,而不是从Node
继承的属性(尽管它比内部的属性复杂一点)。这意味着您不能通过CSS设置属性,例如fitWidth
。您也不能通过CSS影响图像本身,因为它甚至不可设置样式;最重要的是,要求的宽度/高度值在施工期间使用,不会随时间而改变。恐怕,除了编写包装类之外,您还必须继续使用FXML或Java来配置映像的大小。好吧,至少我知道不要再在上面浪费时间了。谢谢
<HBox styleClass="sidebar-item" >
<ImageView styleClass="icon" preserveRatio="true">
<Image url="@assets/settings.png" requestedHeight="20" requestedWidth="20"/>
</ImageView>
<Label text="%settings" />
</HBox>