在我的帳單應用程序中,帳單是使用Graphics.DrawString方法等打印的。當使用帶有自動換行的Graphics.DrawString來繪製ItemName時,它將單詞包裝成許多行。所以它消耗了很多行。Graphics.Drawstring WordWrap不是預期的
我使用簡單的代碼重新創建了該問題。使用此代碼,我期待輸出如下圖所示: Expected Output designed using MS Paint
這是我的示例代碼。
string FONTNAME = "Tahoma";
text = "C# is a simple, modern, general-purpose, object-oriented programming language";
e.Graphics.DrawString(text, new Font(FONTNAME, 12, FontStyle.Bold), drawBrush, new RectangleF(0, 0, 100.0F, 200F), new StringFormat());
e.Graphics.DrawRectangle(new System.Drawing.Pen(drawBrush), 0, 0, 100.0F, 200F);
但我發現了以下的輸出: Output Image
是否有任何選項來打破的話,而不是自動換行?
您的預期輸出是錯誤的。 WordWrap不會打破單詞,它將包裹在空格上。 –
我的問題是,是否有任何選項可以打破 –
這個詞無論您想要稱爲第一個版本,都絕對不是*換行。畫這樣的東西似乎沒什麼意義,沒有用戶會欣賞它。如果*有*,那麼完全可以使用Graphics.MeasureString()來找出每條線上的內容。 –