Graphics.DrawString Text-Position

JK_net

Erfahrenes Mitglied
Hallo!

Ist es möglich, bei e.Graphics.DrawString bei den Positionen anstelle der linken Ecke, die rechte anzugeben? Ich möchte ein paar Werte ausgeben, die rechtsbündig angeordnet sein sollen.

MfG
Jens
 
Du könntest das so machen ...

1. Berechne dir die rechte äußere Position, an welcher der Text ausgerichtet werden soll
2. Mittels MeasureString kannst du dir die Breite des zu zeichnenden Textes ausrechnen lassen
3. Nun den erhaltenen Wert von der rechten äußeren Position abziehen und die erhältst die linke Position, welche du nun angeben kannst.
 
Hallo,

noch eine Frage dazu...

Ich greife auf die Methode per e.Graphics.MeasureString(...) zu.
Jetzt möchte ich das ganze aber in einem Button-Event machen. Doch hat e dort ein anderes Event...
Hat jemand eine Idee wie das funktioniert, und hilft mir weiter.

Vielen Dank im Voraus!

MfG
Jens
 
Ich möchte gerne die Breite eines Strings mithilfe von Measurestring berechnen, wenn möglich. Nur sollte das Ganze möglichst bei einem Button-Click oder in einer Methode, der ich den String übergebe und die Breite wiederbekomme berechnet werden...

MfG
Jens
 
Hallo Jens!

Ich denke dir ist klar, dass es einen Unterschied zwischen einem geschriebenen string und einem gezeichneten string gibt. Die Methode "MeasureString" ist selbstverständlich nur beim Zeichnen mit GDI+ verfügbar. Die Länge des strings ist ja abhängig von der Schriftart und der Schriftgrösse.

Ich hab dir mal ein bisschen Code, damit solltest du dein Problem lösen können:
Code:
private void button1_Click(object sender, System.EventArgs e)
{
	drawString(textBox1.Text, panel1);
}

private void drawString(string text, Control c)
{
	Graphics g = c.CreateGraphics();

	Font font = new Font("Arial", 18);
	SizeF size = g.MeasureString(text, font);

	g.DrawString(text, font, new SolidBrush(Color.Blue), c.Width-size.Width, 10);

	g.Dispose();
}
 

Neue Beiträge

Zurück