tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
5267
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JK_net JK_net ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    133
    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
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    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.
     

  3. #3
    JK_net JK_net ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    133
    Hast du für MeasureString ein Bespeil, wie das funktioniert?

    Das wäre sehr nett.
     

  4. #4
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Einfach nur das Wort "MeasureString" in den Google eingeben.

    Das sieht dann so aus:
    http://www.google.at/search?hl=de&q=...le-Suche&meta=

    Danach den 4. Link anklicken und staunen.
     

  5. #5
    JK_net JK_net ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    133
    OK, vielen Dank!
    Habe etwas gefunden...
     

  6. #6
    JK_net JK_net ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    133
    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
     

  7. #7
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Is klar, dass bei einem Button die EventArgs andere sind ...

    Was genau willst denn im Button-Click-Event machen?
     

  8. #8
    JK_net JK_net ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    133
    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
     

  9. #9
    Avatar von Niro99
    Niro99 Niro99 ist offline Mitglied Silber
    Registriert seit
    Jan 2005
    Beiträge
    54
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    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();
    }
     
    So einfach wie möglich. Aber nicht einfacher!
    Albert Einstein

Ähnliche Themen

  1. Graphics.DrawString/GraphicsPath.AddString - Padding pro Zeichen?
    Von Danielku15 im Forum .NET Grafik und Sound
    Antworten: 0
    Letzter Beitrag: 27.03.10, 19:40
  2. Text Position stimmt nicht
    Von CJ_Style im Forum CSS
    Antworten: 2
    Letzter Beitrag: 21.01.08, 12:51
  3. [VB.net] Schnelleres Graphics.Clear? Text rotieren lassen!
    Von ZodiacXP im Forum .NET Windows Forms
    Antworten: 0
    Letzter Beitrag: 15.11.07, 17:12
  4. mit drawString() html-formatierten Text ausgeben?
    Von kubitus im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 22.09.04, 00:00
  5. Position vom Text
    Von Methodman im Forum HTML-Editoren
    Antworten: 6
    Letzter Beitrag: 22.06.01, 15:07