2011-03-09 20 views
10

Bir vb.net web uygulamasında metnin gerçek genişliğini algılamanın bir yolu var mı? Yazı tipi ve boyutuna bağlı olması gerekir.vb.net'deki metnin genişliğini saptayın

Vb6'da metni bir etikete kopyalayabilir ve sığdırmak için genişletir, ardından genişliğini ölçebilirsiniz, ancak bu, vb.net'de çalışmaz.

+3

etiket hüner hala çalışır ancak aksak ve verimsiz. –

+1

Her zaman oldu :-) – Urbycoz

cevap

22

Güncelleme:

Dim text1 As String = "Measure this text" 
    Dim arialBold As New Font("Arial", 12.0F) 
    Dim textSize As Size = TextRenderer.MeasureText(text1, arialBold) 

Graphics.MeasureString Bkz:

önlemler belirtilen dize belirtilen yazı tipi ile çizilmiş Daha fazla inceleme üzerine, TextRenderer.MeasureText daha iyi bir seçenek gibi görünüyor.

Dim myFontBold As New Font("Microsoft Sans Serif", 10, FontStyle.Bold) 
    Dim StringSize As New SizeF 

    StringSize = e.Graphics.MeasureString("How wide is this string?", myFontBold) 
+0

Teşekkürler. Bu kesinlikle bir şey. Tek sorun, PaintEventArgs "e" gerektiriyor gibi görünüyor. – Urbycoz

+0

Grafik nesnesi oluşturup bunu kullanırsam, paintEventArgs e gerekmez. Dim g Grafik = Grafik.FromImage (Yeni Bitmap (1, 1)) – Urbycoz

+1

Görünür TextRenderer sadece web uygulamalarında değil, windows uygulamalarında kullanılabilir. Gerçi bilmek için kullanışlıdır. Şerefe. – Urbycoz

İlgili konular