首页 > 解决方案 > 如何在不支持 css 字符串变量的情况下通过 CSS 在 JavaFX 中切换字体系列?

问题描述

假设我确实通过 CSS 将我想用于拉丁语言的字体系列分配给我的所有 UI 控件

控制1.css:

.controlStyleClass > Label {
    -fx-font-family: 'MyLatinFont';
.controlStyleClass > Text {
    -fx-font-family: 'MyBoldLatinFont';
}

如果应用程序的语言更改为中文,则希望切换到另一种字体。如果我可以通过 css 变量定义字体字符串,而不是为我的每个 UI 控件交换样式类定义,那就太容易了:

控制1.css:

.controlStyleClass > Label {
    -fx-font-family: selectedFont;
}
.controlStyleClass > Text {
    -fx-font-family: selectedBoldFont;
}

稍后分配 latin.css:

* {
    selectedFont: 'MyLatinFont';
    selectedBoldFont: 'MyBoldLatinFont';
}

或中文.css

* {
selectedFont: 'MyChineseFont';
    selectedBoldFont: 'MyBoldChineseFont';
}

作为我的应用程序的样式表。不幸的是,到目前为止,JavaFX 似乎只支持数字和颜色的 css 变量。有没有人对这种字体处理有一个好的概念/解决方法?我真的很感激每一个提示......!

标签: javafxgluon

解决方案


推荐阅读