Sve*_*sli 5 delphi graphics canvas
请考虑以下代码:
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;
Run Code Online (Sandbox Code Playgroud)
我希望这样的事情
+--------+
| |
| |
|This is |
| some |
| text |
| |
| |
+--------+
Run Code Online (Sandbox Code Playgroud)
但我明白了
+--------+
|This is |
| some |
| text |
| |
| |
| |
| |
+--------+
Run Code Online (Sandbox Code Playgroud)
tfBottom格式也是如此.水平文本格式(tfLeft,tfRight,tfCenter)按预期工作,但垂直格式不工作.有谁能解释一下?
我不太确定,但只有在设置了单行时才允许使用VerticalCenter.这是因为Canvas依赖于本机Windows功能.如果您使用Windows DrawText功能,您将看到此限制.如果你需要垂直中心,你必须自己做数学