Wie zeichnet man einen String ohne Padding?

8

Ich benutze die Funktion GraphicsPath.AddString() , aber sie zeichnet den Text mit wenig Platz um den Text herum. Irgendeine Idee, wie man die Zeichenkette ohne dieses Padding zeichnet, nur die Pfade des Textes?

Mein Code ist wie folgt:

%Vor%     
MHMr 04.04.2013, 13:24
quelle

1 Antwort

2

Was passiert ist unter der Haube ist es wahrscheinlich Graphics.MeasureString (), aus der Dokumentation:

  

GDI + fügt jedem Ende jeder angezeigten Zeichenfolge eine kleine Menge (1/6 em) hinzu. Diese 1/6 em erlaubt & gt; für Glyphen mit überhängenden Enden (wie kursiv "f") und gibt GDI + auch eine kleine Menge & gt; von Spielraum, um bei der Anpassung der Gitteranpassung zu helfen.

     

Die Standardaktion von DrawString funktioniert bei der Anzeige benachbarter Läufe gegen Sie:

     

Zunächst fügt das Standard-StringFormat an jedem Ende jeder Ausgabe ein zusätzliches 1/6 em hinzu;   Zweitens, wenn die Breite des Gitters geringer ist als vorgesehen, kann sich die Schnur zusammenziehen   bis zu einem em.   Um diese Probleme zu vermeiden:

     

Übergeben Sie immer MeasureString und DrawString ein StringFormat basierend auf dem typografischen & gt; StringFormat (GenericTypographic).   Legen Sie Graphics TextRenderingHint auf TextRenderingHintAntiAlias ​​fest. Diese Rendering-Methode verwendet Anti-Aliasing und Sub-Pixel-Glyph-Positionierung, um die Notwendigkeit einer Gitteranpassung zu vermeiden, und & gt; ist somit von Natur aus unabhängig von der Auflösung.

Es sieht also so aus, als könnten Sie das mit dem richtigen StringFormat beheben.

    
paranoid_twitch 09.07.2013 14:39
quelle

Tags und Links