Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen der Sprachsyntax
3 Klassendesign
4 Weitere Datentypen
5 Multithreading
6 Collections und LINQ
7 Eingabe und Ausgabe
8 Anwendungen: Struktur und Installation
9 Code erstellen und debuggen
10 Einige Basisklassen
11 Windows-Anwendungen erstellen
12 Die wichtigsten Steuerelemente
13 Tastatur- und Mausereignisse
14 MDI-Anwendungen
15 Grafiken mit GDI+
16 Drucken
17 Entwickeln von Steuerelementen
18 Programmiertechniken
19 WPF – Grundlagen
20 Layoutcontainer
21 WPF-Steuerelemente
22 Konzepte von WPF
23 Datenbankverbindung mit ADO.NET
24 Datenbankabfragen mit ADO.NET
25 DataAdapter
26 Offline mit DataSet
27 Datenbanken aktualisieren
28 Stark typisierte DataSets
A Anhang: Einige Übersichten
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Visual Basic 2008 von Andreas Kuehnel, Stephan Leibbrandt
Das umfassende Handbuch
Buch: Visual Basic 2008

Visual Basic 2008
3., aktualisierte und erweiterte Auflage, geb., mit DVD
1.323 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1171-0
Pfeil 15 Grafiken mit GDI+
Pfeil 15.1 Namensräume von GDI+
Pfeil 15.2 Die Klasse Graphics
Pfeil 15.2.1 Ein Graphics-Objekt besorgen
Pfeil 15.2.2 Neuzeichnen mit ResizeRedraw und Invalidate
Pfeil 15.2.3 Zerstören grafischer Objekte (Dispose)
Pfeil 15.2.4 Koordinatensystem
Pfeil 15.2.5 Koordinatenursprung
Pfeil 15.2.6 Zeichnen mit der Klasse Graphics
Pfeil 15.2.7 Eine Linie
Pfeil 15.2.8 Mehrere Linien
Pfeil 15.2.9 Rechtecke
Pfeil 15.2.10 Polygone
Pfeil 15.2.11 Ellipsen und Teile davon
Pfeil 15.2.12 Kurvenzüge
Pfeil 15.2.13 Bézierkurven
Pfeil 15.3 Stifte und Farben
Pfeil 15.3.1 Linienstile mit Pen
Pfeil 15.3.2 Farben mit Color
Pfeil 15.4 Schriftdarstellung
Pfeil 15.4.1 Schriftart (Font und FontFamily)
Pfeil 15.4.2 Schriftstil mit FontStyle
Pfeil 15.4.3 Ausgabe einer Zeichenfolge
Pfeil 15.4.4 Abmessungen mit MeasureString
Pfeil 15.4.5 Textlayout mit StringFormat
Pfeil 15.5 Bilddateien
Pfeil 15.5.1 Bilder und Grafiken in .NET
Pfeil 15.5.2 Bitmap-Dateiformate
Pfeil 15.5.3 Bilder vom Typ Image
Pfeil 15.5.4 Bitmaps


Rheinwerk Computing - Zum Seitenanfang

15.4 Schriftdarstellung Zur nächsten ÜberschriftZur vorigen Überschrift

Vor Windows 3.1 wurden hauptsächlich Bitmap-Schriften verwendet. Sie waren in einer festen Größe gespeichert und konnten nicht skaliert werden. Mit der Einführung von Windows 3.1 änderte sich das durch die Einführung skalierbarer TrueType-Schriften. Ende der 90er-Jahre wurde das OpenType-Schriftformat vorgestellt, das eine Kombination aus TrueType und dem in PostScript verwendeten Type-1 ist.

GDI+ unterstützt ausschließlich TrueType und OpenType. Sollten Sie im Konstruktor der Font-Klasse eine Schriftart angeben, die nicht diesen Formaten entspricht, wird automatisch die Standardschrift Microsoft Sans Serif verwendet.


Rheinwerk Computing - Zum Seitenanfang

15.4.1 Schriftart (Font und FontFamily) Zur nächsten ÜberschriftZur vorigen Überschrift

Das Format einer Schrift wird durch mehrere Eigenschaften festgelegt: Schriftgröße und Schrifttyp sind am offensichtlichsten. Dazu gesellen sich weitere Darstellungseigenschaften wie fett, kursiv usw. Daher hat die Klasse Font, die eine Schriftart erzeugt, viele Konstruktoren. In der folgenden Syntax sind optionale Parameter kursiv gesetzt und Alternativen durch einen senkrechten Strich voneinander getrennt. Wenn der letzte Parameter die Einheit ist, kann der Stil auch als nichtletztes Argument entfallen.


Public Sub New(prototype As Font, newStyle As FontStyle) 
Public Sub New(family As FontFamily|String, emSize As Single, _ 
  style As FontStyle, unit As GraphicsUnit, _ 
  gdiCharSet As Byte, gdiVerticalFont As Boolean)

Mit

Dim f As New Font("Arial", 12)

erzeugen Sie ein neues Font-Objekt, das als Schriftart »Arial« hat und eine Schriftgröße von 12 Punkten. Wenn Sie möchten, können Sie darüber hinaus auch sofort den Stil festlegen.


Rheinwerk Computing - Zum Seitenanfang

15.4.2 Schriftstil mit FontStyle Zur nächsten ÜberschriftZur vorigen Überschrift

Der Schriftstil beschreibt, ob eine Schrift fett, kursiv, unterstrichen oder durchgestrichen dargestellt wird. Die Stile eines Font-Objekts sind schreibgeschützt. Daher müssen Sie ein neues Font-Objekt erzeugen, um einen anderen Stil zu bekommen. Geeignet ist dazu der Kopierkonstruktor, der die Referenz auf ein existierendes Font-Objekt erwartet sowie die Angabe des zu setzenden Stils, zum Beispiel:

Dim f As New Font(Me.Font, FontStyle.Bold)

Erlaubte Schriftstile sind in der Enumeration FontStyle aufgelistet (siehe Tabelle 15.4).


Tabelle 15.4 Die Enumeration »FontStyle«

Konstante Formatierung

Bold

Fett

Italic

Kursiv

Regular

Normal

Strikeout

Durchgestrichen

Underline

Unterstrichen


Soll eine Schrift beispielsweise fett und kursiv sein, müssen die entsprechenden Konstanten mit dem bitweisen ODER-Operator verknüpft werden. Die folgende Anweisung erzeugt eine Schrift, die sowohl fett als auch kursiv dargestellt wird.

frm.Font = New Font(frm.Font, FontStyle.Bold Or FontStyle.Italic)

Rheinwerk Computing - Zum Seitenanfang

15.4.3 Ausgabe einer Zeichenfolge Zur nächsten ÜberschriftZur vorigen Überschrift

Analog zu den Methoden zur grafischen Darstellung von Linien, Kurven und geometrischen Figuren hat die Klasse Graphics mit DrawString eine sechsfach überladene Methode, um eine Zeichenfolge grafisch auszugeben. In der folgenden Syntax sind optionale Teile kursiv gesetzt und Alternativen durch einen senkrechten Strich voneinander getrennt.


Public Sub DrawString(s As String, font As Font, brush As Brush _ 
  , point As PointF | layoutRect As RectangleF | (x As Single,y As Single) _ 
  , format As StringFormat)

Die ersten drei Parameter sind erforderlich und in allen Methoden gleich: Es wird zuerst die zu zeichnende Zeichenfolge angegeben, anschließend die Schriftart und dann noch ein Objekt vom Typ Brush, um dem grafischen Layout einen großen Spielraum zu eröffnen. Der vierte Parameter spezifiziert die Position und kann ein Punkt, ein umschreibendes Rechteck oder ein Koordinatenpaar sein. Dem letzten Parameter vom Typ StringFormat widme ich mich in Abschnitt 15.4.5, »Textlayout mit StringFormat«.


Hinweis
Die Struktur Point gibt die Punktkoordinaten als Integer an, PointF als Single.


Im folgenden Beispiel wird mit der DrawString-Methode eine Zeichenfolge in die linke obere Ecke des zweiten Quadranten (oben links) des Clientbereichs der Form gezeichnet und noch einmal in die linke obere Ecke des vierten Quadranten (rechts unten). Die Aufteilung des Fensters in Quadranten verdeutlichen eine vertikale und eine horizontale Linie. Abbildung 15.8 zeigt das Aussehen der Form.

Abbildung 15.8 Texte


'...\GDI\Figuren\Texte.vb

Public Class Texte 
  Private Sub Texte_Paint(sender As Object, e As PaintEventArgs) _ 
  Handles MyBase.Paint 
    Dim str As String = "Hallo Welt" 
    Dim ft As New Font("Arial", 20) 
    Dim gr As Graphics = e.Graphics 
    Dim w As Integer = ClientSize.Width, h As Integer = ClientSize.Height 
    gr.DrawString(str, ft, Brushes.Black, 0, 0) 
    gr.DrawLine(New Pen(Brushes.Blue), 0, h \ 2, w, h \ 2) 
    gr.DrawLine(New Pen(Brushes.Blue), w \ 2, 0, w \ 2, h) 
    gr.DrawString(str, ft, Brushes.Black, w / 2, h / 2) 
  End Sub 
End Class

Rheinwerk Computing - Zum Seitenanfang

15.4.4 Abmessungen mit MeasureString Zur nächsten ÜberschriftZur vorigen Überschrift

Die Festlegung des Startpunkts einer Zeichenfolge ist einfach. Die Abmessungen einer Zeichenfolge im Voraus zu wissen ist aber auch wichtig. Sie wollen beispielsweise die Zeichenfolge »Hallo Welt« mittig im Clientbereich einer grafikfähigen Komponente zeichnen lassen. Dazu müssen Sie wissen, wie viel Platz die Zeichenfolge sowohl horizontal als auch vertikal für sich beansprucht.

Hier hilft uns die Methode MeasureString der Klasse Graphics. Diese Methode ist wieder vielfach überladen, liefert aber in allen Fällen die Referenz auf ein SizeF-Objekt zurück. In der folgenden Syntax sind optionale Teile kursiv gesetzt. Bitte beachten Sie, dass ohne Übergabe eines StringFormat-Objekts die ermittelte Größe etwas zu groß ist, insbesondere wenn Unterschneidungen oder Ligaturen von Buchstaben auftreten. Als Formatierungsobjekt eignet sich die Rückgabe von StringFormat.GenericTypographic. Für genaue Messungen sollte außerdem graphics.TextRenderingHint = TextRenderingHint.AntiAlias gesetzt werden. Exakter passende Messungen erhalten Sie mit MeasureCharacterRanges.


Public Function MeasureString([text] As String, font As Font _ 
  , layoutArea As SizeF, stringFormat As StringFormat _ 
  , ByRef charactersFitted As Integer, ByRef linesFilled As Integer) _ 
  As SizeF

Public Function MeasureString([text] As String, font As Font, _ 
  origin As PointF, stringFormat As StringFormat) As SizeF

Public Function MeasureString( [text] As String, font As Font, _ 
  maxWidth As Integer, format As StringFormat) As SizeF

Public Function MeasureCharacterRanges([text] As String, font As Font, _ 
  layoutRect As RectangleF, stringFormat As StringFormat) As Region()

Die Struktur SizeF repräsentiert einen rechteckigen Bereich, dessen Abmessungen in den Eigenschaften Height und Width vom Typ Single gespeichert sind. Um einen Text zu zentrieren, müssen Sie ihn um die Hälfte der Abmessungen vom Zentrum nach links oben verschieben, da der Textursprung links oben liegt. Ein alternativer Weg führt über die Klasse StringFormat.


Rheinwerk Computing - Zum Seitenanfang

15.4.5 Textlayout mit StringFormat topZur vorigen Überschrift

Ein Objekt vom Typ StringFormat enthält Informationen für das Textlayout, beispielsweise die Textausrichtung und den Zeilenabstand. Mit den beiden Eigenschaften Alignment und LineAlignment wird eine Zeichenfolge positioniert. Alignment beschreibt die horizontale Ausrichtung eines Textes, LineAlignment die vertikale. Beide sind vom Typ der Enumeration StringAlignment (siehe Tabelle 15.5).


Tabelle 15.5 Die Enumeration »StringAlignment«

Konstante Beschreibung

Near

Die Ausrichtung orientiert sich an der linken oberen Ecke.

Center

Die Ausrichtung ist zentriert in der Mitte.

Far

Die Ausrichtung orientiert sich an der rechten unteren Ecke.


Damit wird die zentrierte Ausgabe einer Zeichenfolge wie in Abbildung 15.9 einfach: Wir erzeugen ein StringFormat-Objekt und legen die beiden Eigenschaften Alignment und LineAlignment auf StringAlignment.Center fest. Anschließend übergeben wir das StringFormat-Objekt der DrawString-Methode.


'...\GDI\Figuren\TextZentriert.vb

Public Class TextZentriert 
  Private Sub TextZentriert_Paint(sender As Object, e As PaintEventArgs) _ 
  Handles MyBase.Paint 
    Dim ft As New Font("Arial", 20) 
    Dim gr As Graphics = e.Graphics 
    Dim format As New StringFormat() 
    format.Alignment = StringAlignment.Center 
    format.LineAlignment = StringAlignment.Center 
    Dim w As Integer = ClientSize.Width, h As Integer = ClientSize.Height 
    gr.DrawLine(New Pen(Brushes.Blue), 0, h \ 2, w, h \ 2) 
    gr.DrawLine(New Pen(Brushes.Blue), w \ 2, 0, w \ 2, h) 
    gr.DrawString("Hallo Welt", ft, Brushes.Black, w / 2, h / 2, format) 
  End Sub 
End Class

Abbildung 15.9 Zentrierter Text



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Visual Basic 2008
Visual Basic 2008
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Rheinwerk-Shop: Windows Presentation Foundation






 Windows Presentation
 Foundation


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern