我試圖創建一個控制,基本上允許我在下面繪製不同的字符串。 但是,字符串的寬度可能不會大於控件的寬度。 爲了解決這個問題,我正在考慮將一個RectangleF對象傳遞給Graphics.DrawString方法。這將包裝比通過矩形的寬度更寬的字符串。儘管這確實解決了如果太大而不能看到整個弦的問題,但還有另一個問題。如果我要嘗試這樣的事情措施包裹字符串
Graphics g = e.Graphics; // Paint event
g.DrawString(someText, someFont, someBrush, new PointF(0, 0), someRectangleF);
g.DrawString(someMoreText, someFont, someBrush, new PointF(0, 12), someRectangleF);
的問題是,如果someText被包裹,第三行會畫畫的文本在第一文本,從而使其難以/無法讀取。
我正在爲這個問題尋找一個解決方案,並且我發現了一些有趣的鏈接,但是包括使用for循環來測量每個字符的寬度等等。 有沒有更簡單的方法來做到這一點?
您是否考慮過僅使用帶包裝的TextBlock?您正在嘗試構建的控件看起來很像ListView。爲什麼要自定義控件? – Paparazzi 2012-02-02 21:55:16
我確實考慮過使用ListView。但是,我的控制代表了我的程序能夠打印的時間表。並且打印的ListView看起來不太好,所以我一直在試圖創建自己的控件。哦,對不起,我忘了提及我正在使用WinForms。我編輯了我的問題。 – haiyyu 2012-02-02 21:58:22