4

我正在尝试在报告模式下使用OnCustomDrawItem.

当我尝试更改 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;
4

1 回答 1

10

我在 TDBGrid 上遇到了类似的问题。

Canvas.Refresh重新分配 Canvas.Font 属性后尝试调用 。

于 2012-03-02T17:43:24.943 回答