2016-10-27 2 views
0

Ich benutze C#, um einen Text in einem bestimmten Format zu schreiben. Mein Problem ist, dass sich beim Ändern der Schriftgröße sowohl die Breite als auch die Höhe ändern, während ich nur die Schrifthöhe ändern möchte.Wie kann ich die Schrifthöhe in system.drawings.font einstellen?

Mein Code:

using (Graphics graphics = Graphics.FromImage(bitmap)) 
{ 
    using (System.Drawing.Font romanfont = new System.Drawing.Font("Times New Roman",11, FontStyle.Bold)) 
    //using (System.Drawing.Font romanfont = new System.Drawing.Font("Times New Roman", 11, FontStyle.Bold)) 
    { 
     SolidBrush transBrush = new SolidBrush(Color.FromArgb(65, 79, 79)); 
     StringFormat format = new StringFormat(StringFormatFlags.DirectionRightToLeft); 

     graphics.DrawString(firstname, romanfont, transBrush, firstnameLocation, format); 
     graphics.DrawString(secondname, romanfont, transBrush, secondnameLocation, format); 
     graphics.DrawString(finalfirstadd, romanfont, transBrush, firstaddresslocation, format); 
     graphics.DrawString(finalsecondadd, romanfont, transBrush, secondaddresslocation, format); 
    } 
} 

Antwort

0

Sie können diesen Effekt erzielen, indem eine Transformation auf der Graphics-Objekt.

Zum Beispiel, wenn Sie den Text doppelt so groß, aber immer noch die gleiche Breite machen möchten, können Sie dies tun:

graphics.scaleTransform(1, 2); 

Sie würden diese über dem Platz setzen überall dort, wo Sie Ihre Saiten zeichnen. Beachten Sie, dass durch diese Änderung alles doppelt so groß wird. Daher müssen Sie möglicherweise die Positionen und Größen Ihrer Rechtecke anpassen (z. B. firstnameLocation; in diesem Fall möchten Sie wahrscheinlich die Höhe und die Höhe des Rechtecks ​​durch 2 teilen).

+0

gibt es keine andere Lösung – Lupindo

Verwandte Themen