delphi - 更改列表框的选择不透明度
问题描述
我无法更改 FireMonkey 列表框的选择不透明度。就我而言,我想更改选区的颜色,并使其完全不透明。起初,我尝试通过基于默认样式的自定义样式更改 de ListBox 的样式来做到这一点。选择部分是不透明度为 1 的 TStyleObject。我将其替换为填充为红色的 TRectangle。应用我的样式后,我注意到选择与我为选择选择的鲜红色不同。
所以我只是深入 FMX.ListBox 代码,看看那里发生了什么。令我惊讶的是,我发现选择的不透明度在 TCustomListBox ApplyStyle 过程中硬编码设置为 0.7。我希望风格负责事物的外观。我不知道这是否是错误的思考方式,但这不是我所期望的。
在此之后,我尝试通过使用以下代码实现 OnApplyStyleLookup 事件来更改选择不透明度运行时。
procedure TForm1.ListBox1ApplyStyleLookup(Sender: TObject);
var
SelectionControl: TControl;
begin
if ListBox1.FindStyleResource<TControl>('selection', SelectionControl) then
SelectionControl.Opacity := 1;
end;
然而,这没有效果。我尝试通过从 TCustomListBox 派生并覆盖 ApplyStyle 方法在新的自定义 ListBox 控件中做同样的事情,在 TCustomListBox 的 ApplyStyle 之后通过继承的关键字我放置代码以将选择不透明度设置为 1。这也没有任何影响。
我只是以错误的方式解决这个问题,我是否遗漏了什么,或者只是德尔福很奇怪。
解决方案
推荐阅读
- node.js - Pupateer page.evaluate 解析网站时随机停止工作
- python - 我不明白为什么我的 Port Scanner Python 程序出错
- c# - File.Create c# 中的 System.UnauthorizedAccessException
- php - 记录在 40 秒后显示,有时在查询期间丢失与 MySQL 服务器的连接
- r - 删除具有相同值但在 R 中的不同列中的重复行
- scala - 为什么quill使用IDEA找不到driverClassName和jdbcUrl?
- php - 下面常量的PHP抽象类访问
- ios - 布局更改时如何正确调整 PKDrawing 的大小?
- python - 如何在 Python 中取消透视数据集
- android - 如何将图像从 Firebase 存储下载到手机内部存储