我有一个带有 X 标头和 x 根的 virtualstringtree(启用了网格线)。我想将子项(至少 1 个)添加到只有 1 个文本位于中间并通过所有标题(独立)的根。因此,无论我是否调整标题等的大小,文本始终与 VirtualStringTree 的实际客户端大小对齐。
这可能吗?如果是这样,怎么做?
我有一个带有 X 标头和 x 根的 virtualstringtree(启用了网格线)。我想将子项(至少 1 个)添加到只有 1 个文本位于中间并通过所有标题(独立)的根。因此,无论我是否调整标题等的大小,文本始终与 VirtualStringTree 的实际客户端大小对齐。
这可能吗?如果是这样,怎么做?
这听起来像单元格合并。这在此处进行了讨论,例如,解决方案包含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;