none
mit e.Graphics.DrawString Grundlinie treffen schaff ich nicht RRS feed

  • Allgemeine Diskussion

  • Moin,

    wenn ich mit unterschiedlichen Fontgrößen in eine Zeile mit e.Graphics.DrawString unterschiedliche Zeichen schreiben will, so gelingt es mir nicht, die Grundlinie zu treffen. Font.height gibt ja die gesamte Zeilenhöhe zurück, was Graphics.MeasureString genau zurückgibt weiß ich nicht, aber wahrscheinlich die Gesamthöhe (p-Linie bis k-Linie)

    Schreib ich nun zB   

    e.Graphics.DrawString(tx, fntSmall, Brushes.Black, lX, yy)

    und dann einen anderen Text in die gleiche Zeile mit

     strSize1 = e.Graphics.MeasureString(tx, fntSmall)
     tx = "Was anderes"
     strSize2 = e.Graphics.MeasureString(tx, fntBig)     
     e.Graphics.DrawString(tx, fntBig, Brushes.Black, xNEU, yy + strSize1.Height - strSize2.Height)
            

    So ist der 2. String höher als die Grundlinie des 1. Strings. Scheint mir verständlich, da ich ja eigentlich nur mit der (ca.) Versalhöhe arbeiten müsste. Ich finde hier aber in VB keine rechte Lösung.

    Kann mir jemand helfen?

    Nachtrag: Habs auch mit GetCellAscent versucht, da wird das Zeichen mit dem großen Font etwas zu niedrig gesetzt.
    Samstag, 21. Januar 2017 09:27

Alle Antworten

  • Hi,

    naja, GetCellBlaBla et cetera ist das was Du von gdi+ bekommen kannst.

    https://msdn.microsoft.com/de-de/library/xwf9s90b(v=vs.110).aspx

    Mittels MeasureCharacterRanges kannst Du noch ein paar Infos über die einzelnen Characters als Region(s) bekommen.

    https://msdn.microsoft.com/de-de/library/system.drawing.graphics.measurecharacterranges(v=vs.110).aspx

    https://msdn.microsoft.com/de-de/library/system.drawing.characterrange(v=vs.110).aspx

    Viele Grüße,

      Thorsten

    Samstag, 21. Januar 2017 19:46
  • Mittels MeasureCharacterRanges kannst Du noch ein paar Infos über die einzelnen Characters als Region(s) bekommen.

    Danke Thorsten, aber diese Ranges sind weniger aussagekräftig als die Fontmetric-Methoden
    Sonntag, 22. Januar 2017 00:28