即使在使用 vcl,styles 时,某些组件也会使用 Color 属性设置来绘制颜色。因此,当使用 Metro 深色样式(接近黑色)并且组件颜色设置为 clWindow 时,组件颜色与样式不匹配。有没有办法在使用 vcl.style 时获取表单背景颜色,以便可以设置组件的颜色属性以匹配表单样式的背景颜色?
颜色可以通过在样式设计器中加载样式来获得,但我想在运行时获取颜色值。
即使在使用 vcl,styles 时,某些组件也会使用 Color 属性设置来绘制颜色。因此,当使用 Metro 深色样式(接近黑色)并且组件颜色设置为 clWindow 时,组件颜色与样式不匹配。有没有办法在使用 vcl.style 时获取表单背景颜色,以便可以设置组件的颜色属性以匹配表单样式的背景颜色?
颜色可以通过在样式设计器中加载样式来获得,但我想在运行时获取颜色值。
您可以使用GetSystemColor
传递正确系统颜色常量的函数来获取
例如获取 TEdit 组件使用的背景颜色
TStyleManager.ActiveStyle.GetSystemColor(clWindow)
要获取表单的默认背景颜色,请尝试
TStyleManager.ActiveStyle.GetSystemColor(clBtnFace)
您也可以使用:
StyleServices.GetStyleColor(scWindow)