GENAUE Breite in Pixel eines Buchstabens
-
Hallo,
Ich weiss nicht ob ich von lauter Bäumen den Wald nicht mehr sehe oder ob das wirklich nicht so einfach ist:
Ich möchte die GENAUE Breite eines Buchstabens einer bestimmten Schrift in Pixels ermitteln.Was nicht geht:
Font fo = new Font("Courier New", 12, GraphicsUnit.Pixels);
int iWidth = (int)fo.Size; //stimmt nicht
iWidth = (int)MeasureString("G", fo).Width; //stimmt nichtGruss mike
-
MSDN zu MeasureString:
Diese Methode gibt eine SizeF-Struktur zurück, die die Größe der durch den text-Parameter angegebenen Zeichenfolge in Pixel darstellt, wenn diese mit dem font-Parameter gezeichnet wird.
Du brauchst ein Graphics Objekt für MeasureString.
-
Hallo,
Ist klar. iWidth = (int)grfx.MeasureString("G", fo).Width;
Aber so funktioniert es eben nicht. Der zurueckgegene Wert ist
je nach Schriftgroesse zu hoch !!!
Ich muss es wahrscheinlich mit der API GetTextMetrics() probieren.
Gruzz mike
-
die frage hat man hier schon mal gestellt. und da kann man nur sagen
Die MeasureString-Methode ist für die Verwendung mit einzelnen Zeichenfolgen vorgesehen und enthält etwas zusätzlichen Platz für überhängende Symbole vor und hinter der Zeichenfolge. Außerdem passt die DrawString-Methode Symbolpunkte an, um die Anzeigequalität zu optimieren. So kann eine Zeichenfolge schmaler als von MeasureString gemeldet angezeigt werden.
Aus der .NET Hilfe