基本上我需要在标签或其他可以旋转的给定尺寸的容器中放置文本。但就像一个标签;当文本无法放在一行并且居中对齐时,文本将换行到下一行。
环顾四周,我发现了graphics.DrawString和graphics.RotateTransform我尝试使用一些教程搞乱它们并设法使用它将文本旋转到90度。
Private Sub painted(sender As Object, e As PaintEventArgs) Handles label1.Paint
Dim fontObj As Font
fontObj = New System.Drawing.Font("Times", 10, FontStyle.Bold)
e.Graphics.TranslateTransform(sender.width - 15, 10)
e.Graphics.RotateTransform(90)
e.Graphics.DrawString("Test", fontObj, Brushes.Black, 0, 0)
End Sub
然而,这并没有解决文本包装的问题,我仍然不完全确定这是如何工作的。我正在寻找一个可以接受标签控件,字符串和旋转角度(90,180,270)参数的子程序,然后在控件内绘制该字符串,以便在不改变控件大小的情况下全部可见。
所以我的问题是:有可能吗?如果是的话,我从哪里开始,我应该怎么做呢?