我正在嘗試使用OnCustomDrawItem
以4列的報告模式繪製列表視圖控件。簡單的TListView OwnerDraw文本字體大小和顏色示例?
當我嘗試更改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;
相關但沒有字體大小更改:http://stackoverflow.com/questions/7696499/how-change-text-color-in-a-column-in-ttntlistview – 2012-03-02 17:27:29
你想要不同的字體大小和字體的面不同的項目?這就是我無法解決的問題。 – 2012-03-02 18:05:25
顯然,您可以更改字體大小,但當然,所有行高都必須相同,因此您只能更改範圍內的所有字體大小,以適應現有行高。 – 2012-03-02 18:28:55