我有一个带有X标头和x根的virtualstringtree(已启用网格线)。 我想将子项(至少1个)添加到只有1个文本位于中间且遍历所有标题(独立)的根中。所以无论我是否调整标题等,文本总是与VirtualStringTree的实际客户端大小对齐。
这可能吗?如果是这样,怎么样?
答案 0 :(得分:3)
这听起来像是细胞合并。例如,here讨论了这个问题,解决方案是在toAutoSpanColumns
中加入TreeOptions.AutoOptions
。
如果您想要居中对齐的文字,请相应地覆盖OnDrawText
。类似的东西:
procedure TForm1.VirtualStringTree1DrawText(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
const Text: WideString; const CellRect: TRect; var DefaultDraw: Boolean);
var
r: TRect;
begin
r := CellRect;
Windows.DrawTextW(TargetCanvas.Handle, PWideChar(Text), Length(Text), r, DT_CENTER or DT_VCENTER);
DefaultDraw := False;
end;