考虑以下代码:
procedure TForm1.PaintBox1Paint(Sender: TObject);
var
vRect : TRect;
vFormat : TTextFormat;
vStr : string;
begin
vStr := 'This is some text';
vRect := rect(10,10,50,130);
vFormat := [tfCenter,tfVerticalCenter,tfWordBreak];
PaintBox1.Canvas.Rectangle(vRect);
PaintBox1.Canvas.TextRect(vRect,vStr,vFormat);
end;
我期待这样的事情
+--------+
| |
| |
|This is |
| some |
| text |
| |
| |
+--------+
但我明白了
+--------+
|This is |
| some |
| text |
| |
| |
| |
| |
+--------+
tfBottom 格式也是如此。水平文本格式(tfLeft、tfRight、tfCenter)按预期工作,但垂直格式则不然。谁能解释一下吗?
我不太确定,但仅当设置了单行时才允许使用 VerticalCenter。
这是因为 Canvas 依赖于本机 Windows 函数。如果您查看 Windows DrawText 函数,您将看到此限制。
如果你需要垂直居中,你必须自己计算
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)