5

自 XE2 以来,有几个主题可用于您的应用程序。例如,除了其他内容之外,将 TListView 的背景颜色更改为灰色的Carbon 。

有什么办法可以得到这种颜色吗?
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

谢谢你。

PS:我也阅读了这篇文章,但到目前为止答案对我没有帮助。

4

1 回答 1

4

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

uses Vcl.Themes;

var Color : TColor; 
Color := StyleServices.GetStyleColor(scListView);
于 2013-05-27T10:23:15.310 回答