最好使用Graphics
對象,如何繪製字符串以便字符仍然正常導向,但是垂直堆疊?在WinForms中繪製垂直堆疊的文本
回答
只要分割字符串爲字符並繪製每一個加入的字體的行高到您的Y軸變量:
protected override void OnPaint(PaintEventArgs e)
{
float x = 10.0F;
float y = 10.0F;
string drawString = "123";
using(SolidBrush brush = new SolidBrush(Color.Black))
using (Font drawFont = new Font("Arial", 16))
{
foreach (char c in drawString.ToCharArray())
{
PointF p = new PointF(x, y);
e.Graphics.DrawString(c.ToString(), drawFont, brush, p);
y += drawFont.Height;
}
}
base.OnPaint(e);
}
我喜歡這個,因爲它可以讓你輕鬆地定製每個字母的高度;然而,在這個例子中,你並沒有配置刷子。在現實生活中,您還需要在需要時渲染緩衝區,並簡單地從OnPaint中的緩衝區複製。 – overslacked 2009-10-05 17:12:05
好點,我加了對象處置 – scottm 2009-10-05 18:24:42
如果你已經使用了正確的邊界框,我會寫一個簡單地注入'\ n'的函數。
是的,通過使用\ n(換行符)的轉義字符,它會強制關閉。但是,如果您在視覺設計器中輸入\ n,則會將文本視爲\ n,認爲您的意思是具有實際的標點反斜槓字符,而不是換行符的轉義字符。
Here是示例項目,做垂直文本。還有一些關於文本對齊的評論。
從示例中,您可以使用StringAlignment.Center將字符居中並將其傳遞給DrawString調用的最後一個參數。
protected override void OnPaint(PaintEventArgs e)
{
float x = 10.0F;
float y = 10.0F;
Font drawFont = new Font("Arial", 16);
SolidBrush drawBrush = new SolidBrush(Color.Black);
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
foreach (char c in Text.ToCharArray())
{
PointF p = new PointF(x, y);
e.Graphics.DrawString(c.ToString(), drawFont, drawBrush, p, sf);
y += drawFont.Height;
}
}
不知道你可以指定對齊方式! – scottm 2009-10-05 21:43:19
- 1. 垂直菜單堆疊文本
- 2. 繪製垂直文本()
- 3. 在畫布上垂直繪製文本
- 4. 垂直堆疊html元素
- 5. Generic.xaml爲矩形垂直堆疊在上面的文本框?
- 6. 如何在面板上垂直堆疊文本字段?
- 7. 如何將隨機繪製的矩形垂直堆疊在一起?
- 8. 如何中心2個垂直堆疊UILabels垂直
- 9. 用堆積的DataFlot繪製堆疊的直方圖
- 10. 在堆疊面板中對齊文本的垂直和水平中心?
- 11. Python的垂直堆疊不工作
- 12. 垂直堆疊的谷歌條形圖
- 13. .NET Winforms垂直進度條文本
- 14. C#WinForms文本框等垂直對齊
- 15. 在iOS上繪製垂直文字
- 16. 在Winforms中使用水平文本的垂直製表符控制
- 17. 使用matplotlib在python中繪製堆疊直方圖
- 18. 如何在D3中繪製垂直文本作爲標籤
- 19. 子菜單不會垂直堆疊
- 20. Appcelerator:垂直堆疊視圖可能嗎?
- 21. 問題:垂直無法堆疊按鈕
- 22. 如何讓這些div垂直堆疊?
- 23. 如何垂直堆疊AlertDialog按鈕?
- 24. 垂直堆疊兩個Sencha Ext.Lists
- 25. 垂直堆疊多個旋轉元素
- 26. 爲什麼HTML跨越垂直堆疊?
- 27. 垂直堆疊時間序列數據
- 28. D3更新垂直堆疊條形圖
- 29. 使用堆疊面板 - 垂直+水平
- 30. gnuplot的繪製垂直從文件
對齊如何?集中對齊還是其他? – 2009-10-05 16:51:44
我不得不從您的帖子中刪除圖片,因爲ImageShack已將其刪除並用廣告替換。有關更多信息,請參閱http://meta.stackexchange.com/q/263771/215468。如果可能的話,你最好重新上傳它們。謝謝! – Undo 2015-09-22 00:42:57