从XE2开始,有几个主题可以用于您的应用程序。例如。碳将TListView的背景颜色除其他外更改为灰色。
有什么办法得到这种颜色吗?
TListView.Color会返回白色,而背景是某种灰色。
我尝试将StyleServices.GetElementDetails与如下代码段一起使用:
var lColor: TColor;
lDetails: TThemedElementDetails;
if StyleServices.Enabled then
begin
lDetails := StyleServices.GetElementDetails(tlListviewRoot);
StyleServices.GetElementColor(lDetails, ecFillColor, lColor);
end;
但是
GetElementColor
失败并返回false。我使用了错误的参数吗?还是我的方法是错误的。可能的参数可以在这里找到:
TThemedListView
TElementColor
谢谢。
附注:我还阅读了this post,但到目前为止,答案对我没有帮助。
最佳答案
要获取已实现StyleHook的TListView的背景色:
uses Vcl.Themes;
var Color : TColor;
Color := StyleServices.GetStyleColor(scListView);