获取主题ListView的背景颜色

时间:2013-05-27 09:20:44

标签: delphi listview themes background-color

从XE2开始,有几个主题可用于您的应用程序。例如。 Carbon 除了其他东西之外,还将TListView的背景颜色更改为灰色

有没有办法获得这种颜色?
TListView.Color返回 white ,尽管背景是某种灰色

我尝试将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

谢谢。

P.S。:我也读过this post但到目前为止答案对我没有帮助。

1 个答案:

答案 0 :(得分:2)

获取已实现StyleHook的TListView的背景颜色:

uses Vcl.Themes;

var Color : TColor; 
Color := StyleServices.GetStyleColor(scListView);