Ich verwende die .NETCF (Windows Mobile) Graphics
Klasse und die DrawString()
Methode, um ein einzelnes Zeichen auf dem Bildschirm zu rendern.Zentrale Textausgabe von Graphics.DrawString()
Das Problem ist, dass ich nicht scheinen kann, um es richtig zentriert zu bekommen. Egal, was ich für die Y-Koordinate der Position des String-Renderings eingestellt habe, es kommt immer niedriger heraus und je größer die Textgröße, desto größer ist der Y-Offset.
Zum Beispiel bei Textgröße 12, ist der Versatz etwa 4, aber bei 32 der Versatz etwa 10
ich den Charakter wollen vertikal meisten des Rechtecks nehmen sie eingezogen Sein und zentriert werden horizontal. Hier ist mein grundlegender Code. this
verweisen auf die Benutzersteuerung in gezeichnet werden wird.
Graphics g = this.CreateGraphics();
float padx = ((float)this.Size.Width) * (0.05F);
float pady = ((float)this.Size.Height) * (0.05F);
float width = ((float)this.Size.Width) - 2 * padx;
float height = ((float)this.Size.Height) - 2 * pady;
float emSize = height;
g.DrawString(letter, new Font(FontFamily.GenericSansSerif, emSize, FontStyle.Regular),
new SolidBrush(Color.Black), padx, pady);
Ja, ich weiß, dass es das Label-Steuerelement ist, dass ich stattdessen verwenden könnte und die Zentrierung mit diesem Satz, aber ich brauche eigentlich dies mit der manuell zu tun Graphics
Klasse.
danke für das Zeigen der anderen Möglichkeit, Sachen zu zeichnen, es hilft mir wirklich mit einem Zentrum Ausrichtung Problem stellt sich heraus, TextRenderer.DrawText ist genauer als eine einfache e.graphics.drawstring vielen Dank, vote up von mir :) –