TSkLabel未适配主题文本颜色:Windows 11现代暗色模式下文本仍黑
解决TSkLabel在Windows 11现代暗色模式下文本显示黑色的问题
检查控件的StyleName属性
确保TSkLabel的StyleName设置为适配系统主题的内置值(比如'label'),这类内置样式会自动继承系统主题的颜色配置。如果手动设置过Font.Color,先清空该属性,避免覆盖主题自动适配逻辑。启用ThemeAware属性
确认TSkLabel的ThemeAware属性设为True,这个属性是控件响应系统主题切换的开关,若设为False,控件会固定使用初始颜色,不会跟随暗色模式调整。自定义主题适配逻辑(内置样式失效时)
可以通过监听系统主题变化事件,手动调整文本颜色:- 注册Delphi VCL的
TThemeManager.OnThemeChanged事件 - 在事件处理函数中判断当前主题类型,动态设置文本颜色:
procedure TMainForm.ThemeManagerThemeChanged(Sender: TObject); begin if TThemeManager.CurrentTheme.Name.Contains('Dark') then SkInfoLabel.Font.Color := TAlphaColors.White else SkInfoLabel.Font.Color := TAlphaColors.Black; end;
- 注册Delphi VCL的
更新Skia4Delphi版本
旧版本的Skia4Delphi可能存在Windows 11现代暗色模式适配缺陷,尝试升级到最新稳定版,官方后续版本通常会修复这类主题兼容问题。
内容的提问来源于stack exchange,提问作者Koot33
相关产品推荐
相关产品推荐

