2010-03-08 95 views
5

tôi sử dụng mã này để vẽ văn bản trong một bảng điều khiển:đồ họa trong C# (.NET)

Graphics g = panel1.CreateGraphics(); 
g.DrawString(...); 

Vì vậy, tôi muốn biết những gì kích thước văn bản đầu vào sẽ được trả lại khi trong bảng điều khiển.

Trả lời

7

Sử dụng g.MeasureString() để lấy chiều rộng của chuỗi trong ngữ cảnh grapic.

// Set up string. 
string measureString = "Measure String"; 
Font stringFont = new Font("Arial", 16); 

// Measure string. 
SizeF stringSize = new SizeF(); 
stringSize = e.Graphics.MeasureString(measureString, stringFont); 
+0

Tốt, điều này là mới đối với tôi. – Finglas

+0

Một vài điểm tôi muốn dọn dẹp: 1) = new SizeF(); là không cần thiết ở đây; 2) thực hành tốt để vứt bỏ phông chữ (và nhiều đối tượng đồ họa khác) như stringFont.Dispose() hoặc sử dụng câu lệnh "using". – Zenya

1

Bạn cũng có thể sử dụng TextRenderer.MeasureText đôi khi dễ sử dụng hơn MeasureString.

+0

Nhưng chỉ chính xác nếu bạn sử dụng TextRenderer.DrawText – Eric