delphi – 简单的TListView OwnerDraw文本字体大小和颜色示例?
发布时间:2020-12-15 09:38:15 所属栏目:大数据 来源:网络整理
导读:我试图让所有者使用OnCustomDrawItem在报告模式下使用4列绘制列表视图控件. 当我尝试更改Canvas.font.color时,我就是这样,我没有问题. 如果我设置canvas.font.size,我发现控件绘制的文本大小没有变化. 如果我试图从OnCustomDrawItem中接管文本的绘画,我发现
我试图让所有者使用OnCustomDrawItem在报告模式下使用4列绘制列表视图控件.
当我尝试更改Canvas.font.color时,我就是这样,我没有问题. 如果我设置canvas.font.size,我发现控件绘制的文本大小没有变化. 如果我试图从OnCustomDrawItem中接管文本的绘画,我发现我做不到.我知道如何使用OnCustomDraw在背景区域绘制,但我想自定义绘制listview ITEM,以便我可以设置文本的颜色和字体名称以及字体大小. 我知道在ListView所有者绘制的上下文中使用Canvas存在一些问题,以及在ListView中可以执行的操作的一些限制. procedure TForm1.MyListViewCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); begin Sender.Canvas.Font.Size := 13; // NO effect. Sender.Canvas.Font.Color := clRed; // WORKS. Sender.Canvas.Font.Style :=Sender.Canvas.Font.Style + [fsBold]; // WORKS! end; 解决方法
我在TDBGrid上遇到了类似的问题.
重新分配Canvas.Font属性后,尝试调用Canvas.Refresh. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |