Delphi XE6如何使用样式更改TMetropolisUIListBoxItem的高亮颜色

3
我需要更改选中项的ListBoxItem的高亮颜色。在Android上使用黑暗风格时,当我选择一个项目时,结果非常糟糕(文本为白色,项目框为浅蓝色)。是否有一种方法来更改高亮显示的颜色?

我也尝试过像“取消选择”该项,试图去掉可怕的浅蓝色背景,但我无法做到... 欢迎提出任何建议! 谢谢。 - Gianluca Colombo
1个回答

3

颜色的定义可以通过样式文件实现。 您可以搜索样式 ListBoxItemStyle ,在其中找到 TColorAnimation ,它具有 Trigger = IsSelected ,在那里您可以更改颜色。 以下是我样式的示例:

object TLayout
  StyleName = 'ListBoxItemStyle'
  DesignVisible = False
  Height = 20.000000000000000000
  Width = 50.000000000000000000
  object TText
    StyleName = 'text'
    Align = alClient
    Color = claBlack
    Height = 18.000000000000000000
    HitTest = False
    HorzTextAlign = taLeading
    Margins.Left = 3.000000000000000000
    Margins.Top = 1.000000000000000000
    Margins.Right = 3.000000000000000000
    Margins.Bottom = 1.000000000000000000
    Width = 44.000000000000000000
    WordWrap = False
    object TColorAnimation
      Duration = 0.001000000047497451
      PropertyName = 'Color'
      StartValue = claBlack
      StopValue = claAzure
      Trigger = 'IsSelected=true'
      TriggerInverse = 'IsSelected=false'
    end
  end
  object TCheckBox
    StyleName = 'check'
    Align = alLeft
    CanFocus = False
    DisableFocusEffect = True
    Height = 20.000000000000000000
    StyleLookup = 'ListBoxItemcheck'
    TabOrder = 1
    Visible = False
    Width = 20.000000000000000000
  end
end

我尝试将TColorAnimation代码添加到AndroidJet.style的ttext对象中,但它并没有按照我的预期工作。 - Gianluca Colombo
你想要改变TText的颜色,对吗?需要提供代码吗? - Emerson Biondo
老实说,我正在尝试更改所选项目框的背景颜色。无论如何,我尝试更改字体颜色,但它不起作用。不幸的是,TMetropolisUIListBoxItem有三个文本属性名称(标题、副标题和长描述),而我正在使用显示所需上下文的Title属性。 - Gianluca Colombo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接