2009-04-06 9 views
15

Tôi có một biểu mẫu nhỏ hiển thị một số thông tin tiến trình.
Rất hiếm khi tôi phải hiển thị một tin nhắn khá dài và tôi muốn có thể thay đổi kích thước biểu mẫu này khi cần để thông báo này phù hợp trong biểu mẫu.Cách xác định kích thước của một chuỗi được cung cấp một phông chữ

Vậy làm cách nào để tìm hiểu cách chuỗi rộng S sẽ được hiển thị trong phông chữ F?

Trả lời

17

Tùy thuộc vào công cụ hiển thị đang được sử dụng. Về cơ bản, bạn có thể chuyển đổi giữa GDI và GDI +. Chuyển đổi có thể được thực hiện bằng cách thiết lập UseCompatibleTextRendering bất động sản phù hợp

Khi sử dụng GDI + bạn nên sử dụng MeasureString:

string s = "A sample string"; 

SizeF size = e.Graphics.MeasureString(s, new Font("Arial", 24)); 

Khi sử dụng GDI (tức là Win32 vẽ), bạn nên sử dụng lớp TextRenderer:

SizeF size = TextRenderer.MeasureText(s, new Font("Arial", 24)); 

Xem bài viết này: Text Rendering: Build World-Ready Apps Using Complex Scripts In Windows Forms Controls

+0

Cảm ơn TextRenderer.MeasureText đã làm việc – Nifle

5

Làm thế nào về điều này:

Size stringsize = graphics.MeasureString("hello", myFont); 

(Here là liên kết MSDN.)

0

Trở lại trong Win32 Tôi đã sử dụng tương đương cho VisualStyleRenderer :: GetTextExtent chức năng cho việc này.