JavaFX CSS 在运行时更改自定义样式类的属性
Posted
技术标签:
【中文标题】JavaFX CSS 在运行时更改自定义样式类的属性【英文标题】:JavaFX CSS change property of custom style class at runtime 【发布时间】:2018-01-14 01:53:40 【问题描述】:我对 CSS 非常陌生,因为我从未使用过网络语言,但对于 JavaFX 应用程序,我有一个带有 windows 10 UWP 主题的 css 样式表。默认样式类使用默认的 windows 灰色按钮主题,但我还为彩色组件创建了自定义样式类。
颜色作为默认样式的 .root 样式类中的变量,并在彩色样式的 .colored 样式类中被覆盖。
.root
-fill-color: #CCCCCC;
...
.colored
-fill-color: #DD2867;
...
我现在想在运行时更改彩色样式颜色。 我知道 Node#setStyle(String) ,我可以在其中修改填充颜色,如下所示:
root.setStyle("-fill-color: #FF00FF;");
但这只会影响 .root 样式类中的颜色,而不影响 .colored 样式类。
您能告诉我一种在运行时直接修改样式类的属性的方法,还是一种更好的方法来使用默认样式和彩色样式?
提前致谢, 埃隆。
【问题讨论】:
【参考方案1】:在根节点上定义另一种查找颜色,并在您的.colored
类中使用它:
-fill-color: #CCCCCC;
-colored-fill: #DD2867 ;
...
.colored
-fill-color: -colored-fill;
...
然后您可以以相同的方式以编程方式更改该颜色:
root.setStyle("-colored-fill: ... ;");
【讨论】:
非常感谢您。它完全符合我的要求。以上是关于JavaFX CSS 在运行时更改自定义样式类的属性的主要内容,如果未能解决你的问题,请参考以下文章