Grafische Programmierung: Schrift

Um einen Schriftzug dynamisch mit der GDI-Schnittstelle zu zeichnen (und nicht über ein Label), benötigen wir die Funktion DrawString(). Der Funktion wird die Zeichenkette (string), die Schriftformatierung (Font-Klasse), die Farbe (Brushes-Klasse) und die Koordinaten (PointF-Struktur) übergeben. Die PointF-Struktur ist im Gegensatz zur Point-Struktur für Gleitkommazahlen und nicht nur für Ganzzahlen geeignet. Der restliche Aufbau ist identisch.
Die Font-Klasse stellt uns eine Reihe von Schriftformatierungen zur Verfügung, so können wir die Schriftfamilie (Eigenschaft FontFamily), Schriftgröße (Eigenschaft Size), Maßeinheit der Schriftgröße (Eigenschaft Unit) und den Schriftstil (Eigenschaft Style) einstellen. Die gerade genannten Eigenschaften können jedoch nicht verändert, sondern nur abgerufen werden, d. h. das Setzen der Werte passiert lediglich über den Konstruktor. Deshalb ist der Konstruktor auch mehrfach überladen. Als ersten Parameter übergeben wir die Schriftfamilie, wobei wir diese als Zeichenkette oder als Objekt der FontFamily-Klasse übergeben können. Dem Konstruktor der FontFamily-Klasse kann ebenfalls der Name der Schriftfamilie übergeben werden. Über die statische Eigenschaft Families der Klasse FontFamily können wir ein Array von verfügbaren Schriftfamilien abrufen und ebenfalls verwenden. Als zweiter Parameter wird die Größe der Schrift übergeben. Hierbei ist die Größe jedoch abhängig von der verwendeten Maßeinheit (dazu gleich mehr). Ein Aufruf mit diesen zwei Parametern würde bereits genügen. Als dritten optionalen Parameter übergeben wir einen Wert der Enumeration FontStyle, welche den Schriftstil beschreibt: Bold (Fett-Druck), Italic (Kursiv), Regular (Standardeinstellung), Strikeout und Underline. Die einzelnen Werte sind Bit-Masken und können daher bit-weise verodert werden (um z. B. einen kursiven und unterstrichenen Text darzustellen). Als vierter und weiterer optionaler Parameter können wir einen Wert der GraphicsUnit-Enumeration übergeben, wodurch wir die Maßeinheit der Schriftgröße festlegen. Hierbei stehen uns folgende Werte zur Verfügung: Document (1/300 Zoll), Inch (Zoll), Millimeter, Pixel und Point (1/72 Zoll). Standardeinstellung ist die Einheit Point (Abkürzung pt).

Form1.cs

private void Form1_Paint(object sender, PaintEventArgs e)
{
	e.Graphics.DrawString("Hallo Welt!", new Font(new FontFamily("Times"), 20, FontStyle.Bold | FontStyle.Italic), Brushes.Orange, new PointF(40, 40));
}
Download

LinksRechts