Warum ist .MeasureString so ungenau? Ich versuche grad jeden Buchstaben einzelnd aus einer Textdatei auszulesen, damit ich ihn einzelnd färben kann, doch die Abstände sind sehr verschieden, obwohl ich alles mit .MeasureString() gemessen habe:
Hab ich etwas falsch gemacht? oder gibts noch andere Alternativen wie ich mein Vorhaben umsetzen kann.
Das ganze soll übrigens ein Programm zum Tippgeschwindigkeit messen werden, das Markieren von den richtig getippten/falsch getippten Buchstaben klappt, aber die Buchstaben werden halt so weit versetzt voneinander angezeigt
VB.NET-Quellcode
- Static distance As Single = 100
- Dim Y As Single = 50
- Dim input As String = sr.ReadToEnd
- For item = 0 To input.Length - 1
- distance += .MeasureString(input(item), DefaultFont, 10).Width
- If input(item) = vbLf Then
- distance = 100
- Y += .MeasureString(input(item), New Font(Font.FontFamily, 10), 10).Height - 2
- End If
- If Not writenText.Count > item Then
- .DrawString(input(item), DefaultFont, Brushes.Black, New PointF(distance, Y))
- ElseIf writenText(item) = input(item) Then
- .DrawString(input(item), DefaultFont, Brushes.Green, New PointF(distance, Y))
- Else
- .DrawString(input(item), DefaultFont, Brushes.Red, New PointF(distance, Y))
- End If
- If item = writenText.Count Then
- Dim pen As New Pen(Brushes.Cyan, 3)
- .DrawLine(pen, distance, Y + 15, distance + .MeasureString(input(item), DefaultFont, 10).Width, Y + 15)
- End If
- Next
Hab ich etwas falsch gemacht? oder gibts noch andere Alternativen wie ich mein Vorhaben umsetzen kann.
Das ganze soll übrigens ein Programm zum Tippgeschwindigkeit messen werden, das Markieren von den richtig getippten/falsch getippten Buchstaben klappt, aber die Buchstaben werden halt so weit versetzt voneinander angezeigt