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 nicht

    😞

    Gruss 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


Anmelden zum Antworten