如何使用typesafe css加载自定义字体?

时间:2017-03-01 14:38:58

标签: tornadofx

我想在tornafeofx-app中使用typesafe css加载自定义字体,这可能吗? 谢谢和最好的问候。

2 个答案:

答案 0 :(得分:4)

只要加载了一个字体,它就可以在CSS中使用,所以我们在TornadoFX中添加了一个loadFont帮助器,可以这样使用:

class FontTest : App(Main::class, Styles::class) {
    class Main : View("Font Test") {
        override val root = stackpane {
            label("This is my Label") {
                addClass(Styles.custom)
            }
        }
    }

    class Styles : Stylesheet() {
        companion object {
            val custom by cssclass()
            // Note that loadFont() returns Font?
            val riesling = loadFont("/fonts/riesling.ttf", 48.0)
        }

        init {
            custom {
                padding = box(25.px)

                riesling?.let { font = it }
                // or if you just want to set the font family:
                // riesling?.let { fontFamily = it.family }
            }
        }
    }
}

enter image description here

如果你确定字体存在(例如你在你的构建中包含),可以简化为:

class Styles : Stylesheet() {
    companion object {
        val custom by cssclass()
        val riesling = loadFont("/fonts/riesling.ttf", 48.0)!!
    }

    init {
        custom {
            padding = box(25.px)

            font = riesling
            // or if you just want to set the font family:
            // fontFamily = riesling.family
        }
    }
}

答案 1 :(得分:1)

顺便说一句,因为Ruckus T-Boom回答了这个问题29天后,他添加了loadFont函数:),可以用它来编写:

class Styles : Stylesheet() {
    private val customFont = loadFont("/fonts/custom-font.ttf", 14)!!

    init {
        root {
            font = customFont
            fontSize = 11.px
        }
    }
}