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:
C#-Quelltext
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(); Console.Write("Geben sie den zu berechnenden String ein: "); string s = Console.ReadLine(); System.Drawing.Size size = TextRenderer.MeasureText(s, fontDlg.Font); 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
msdn2.microsoft.com/...rer.measuretext.aspxModeriert von Th69: Topic aus Neue Einträge / Hinweise / etc. verschoben am Do 16.05.2019 um 09:02