我想通过CSS设置MenuItem的图标。我经常搜索并尝试了很多,现在没有任何成功。
这是一个小型的FXML示例:
<MenuBar>
<menus>
<Menu text="File">
<items>
<MenuItem text="Open" styleClass="iconOpen" />
<MenuItem text="Save" />
<MenuItem text="Exit" />
</items>
</Menu>
</menus>
</MenuBar>
在CSS中我使用:
.iconOpen {
-fx-background-color: red;
-fx-graphic: url("open.png");
}
结果,MenuItem只有红色背景颜色。但没有图标。
我可以直接在FXML中将图标作为ImageView for MenuItem集成,但我不能用CSS来设置它。但我想将样式(css)与结构(fxml)分开。
也许有人可以给我一个提示。我不知道我在这里做错了什么。
非常感谢!
答案 0 :(得分:6)
如果查看CSS Reference Guide,您会注意到-fx-graphic
仅用于Label
和ToolTip
个节点。
所以这会奏效:
.iconOpen {
-fx-background-color: red;
}
.iconOpen > .label {
-fx-graphic: url("lock24.png");
}
因为您正在设置菜单项标签的图形。