2009-04-06 8 views
15

Mam mały formularz, który wyświetla informacje o postępach.
Bardzo rzadko muszę wyświetlać dość długą wiadomość i chcę w razie potrzeby móc zmienić rozmiar tego formularza, aby ta wiadomość była zgodna z formularzem.Jak określić rozmiar ciągu znaków z użyciem czcionki

Jak mogę się dowiedzieć, jak szeroki ciąg znaków S będzie renderowany czcionką F?

Odpowiedz

17

Zależy to od używanego aparatu renderującego. Zasadniczo możesz przełączać się między GDI i GDI +. Przełączanie może odbywać się poprzez ustawienie właściwości odpowiednio

UseCompatibleTextRendering Przy użyciu GDI + należy użyć MeasureString:

string s = "A sample string"; 

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

Przy użyciu GDI (czyli natywny renderowania Win32) należy użyć klasy TextRenderer:

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

Zobacz ten artykuł: Text Rendering: Build World-Ready Apps Using Complex Scripts In Windows Forms Controls

+0

Podziękowania dla TextRenderer.MeasureText – Nifle

5

Jak o tym:

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

(Here jest link MSDN).

0

Powrót na Win32 używałem ekwiwalent dla funkcji VisualStyleRenderer :: GetTextExtent do tego.

Powiązane problemy