02. 主题与自定义

主题与自定义 #

在这个页面上,我们回答了一些关于Fyne主题和控件设计的常见问题。

自定义 #

问:如何更改Label控件文本的颜色?

答: 所有标准控件都使用当前的Theme定义来设置颜色、字体和大小。要对你的应用程序进行更改,请考虑使用 自定义主题

如果你的应用程序需要不同颜色的文本,可以使用canvas.Text类型代替。这允许直接设置文本的颜色和大小。在执行此操作时要小心,因为用户可以在浅色或深色主题变体之间选择,所以你应该在两种情况下都进行测试。

问:如何从我的Entry控件中移除背景颜色?

答: 输入背景是由主题的InputBackground颜色设置的。你可以将其更改为color.Transparent以移除所有输入背景框。不可能编辑单个输入元素的样式——主题API旨在提供可自定义的,但一致的设计。

主题API #

问:如何使用我在v2.0.0之前编写的自定义主题?

答: 随着时间的推移,你应该考虑更新使用新的主题API。然而,它是可能的在过渡时期使用一个简单的适配器来允许旧主题的使用。你会发现theme.FromLegacy函数,可以将旧的主题实例适配到新的API。

myTheme := &myOldThemeType{}
updated := theme.FromLegacy(myTheme)
app.Settings().SetTheme(updated)

使用这种模式下的主题时,没有性能损失,但在未来的版本中这个API将被移除。