Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
Größe (in Pixel) eines Strings ermitteln
spacer
Autor Nachricht
JayK
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star

Beiträge: 1012
Dabei seit: 19.03.2005


Ubuntu
BeitragVerfasst: Sa 04.02.06 00:13  Antworten mit Zitat Beitrag melden
Die Laufweite eines Strings ermittelt man mit der Methode
System.Windows.Forms.TextRenderer.MeasureText(string text, Font font).

TextRenderer.MeasureText gibt eine Instanz der Klasse System.Drawing.Size zurück, die die Maße des Strings, wie er auf dem Bildschirm ausgegeben würde, enthält. Wenn man also die Weite des Textes ermitteln will, dann muss man MeasureText(/*...*/).Width benutzen, die Höhe entsprechend mit Height.
Da die Laufweite bei so ziemlich jeder Schriftart anders ist, muss man MeasureText natürlich auch noch den Font als Parameter übergeben, mit dem die Maße berechnet werden sollen.

Hier ein kleines Besipielprogramm:
ausblenden C#-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
using System;
using System.Windows.Forms;
using System.Collections.Generic;

namespace stringlänge
{
  class MainClass
  {
    public static void Main(string[] args)
    {
      Console.Title = "Stringlänge";
      System.Windows.Forms.FontDialog fontDlg = new FontDialog();
      fontDlg.ShowDialog();  /* den Font aussuchen lassen */
      Console.Write("Geben sie den zu berechnenden String ein: ");
      string s = Console.ReadLine();  /* String erhalten */
      System.Drawing.Size size = TextRenderer.MeasureText(s, fontDlg.Font);  /* Maße ermitteln */
      MessageBox.Show(String.Format("Der String\n" +
                                    "\"{0}\"\n" +
                                    "mit der Schriftart {1} misst " +
                                    "{2} Pixel in der Länge und {3} Pixel in der Höhe."
                                    new object[] {s, fontDlg.Font.Name, size.Width, size.Height}),
                      "Ergebnis", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
  }
}


Es gibt noch 4 wetere Überladungen der Methode MeasureText, für Details ins MSDN schauen ;-)
:arrow: msdn2.microsoft.com/...rer.measuretext.aspx

_________________
nil
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home