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
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Beispielprojekte
12 Windows Presentation Foundation
13 Windows Store-Apps für Windows 8
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
C Inhalt der Buch-DVD
D Der Autor
Stichwort

Buch bestellen
Ihre Meinung?

Spacer
Einstieg in Visual Basic 2012 von Thomas Theis
Ideal für Programmiereinsteiger geeignet
Buch: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Rheinwerk Computing
579 S., 3., aktualisierte und erweiterte Auflage 2013, brosch., mit DVD
24,90 Euro, ISBN 978-3-8362-1959-4
Pfeil 12 Windows Presentation Foundation
Pfeil 12.1 Layout
Pfeil 12.2 Steuerelemente
Pfeil 12.3 Frame-Anwendung
Pfeil 12.4 Datenbindung
Pfeil 12.5 Zweidimensionale Grafik
Pfeil 12.6 Dreidimensionale Grafik
Pfeil 12.7 Animation
Pfeil 12.8 WPF und Windows Forms
Pfeil 12.8.1 Windows Forms in WPF
Pfeil 12.8.2 WPF in Windows Forms

12 Windows Presentation FoundationZur nächsten Überschrift

Lernen Sie, mit der WPF zu arbeiten, einer gänzlich neu entwickelten Klassenbibliothek zur GUI-Gestaltung mit vielen Multimedia-Komponenten.

WPF steht für Windows Presentation Foundation. Es handelt sich dabei um eine in 2006 gänzlich neu eingeführte Bibliothek von Klassen, die zur Gestaltung von Oberflächen und zur Integration von Multimedia-Komponenten und Animationen dient. Sie vereint die Vorteile von DirectX, Windows Forms, Adobe Flash, HTML und CSS.

Anwendungen im Stil der Windows Store-Apps, die man nur für Windows 8 erstellen kann, basieren auf der WPF. Daher ist das Verständnis für den Aufbau von WPF-Anwendungen Voraussetzung für die Erstellung und Veränderung von Windows Store-Apps.

Die WPF ermöglicht eine verbesserte Gestaltung von Oberflächen. Layout, 3D-Grafiken, Sprachintegration, Animation, Datenzugriff und vieles mehr basieren auf einer einheitlichen Technik. Der Benutzer kann außerdem die Bedienung dieser Oberflächen schnell und intuitiv erlernen.

WPF-Anwendungen können neben den klassischen Medien Maus, Tastatur und Bildschirm auch auf Touchscreen und Digitalisierbrett zugreifen. Sie können über Sprache gesteuert werden und Sprachausgaben erzeugen.

Sie können Elemente aus Windows Forms in einer WPF-Anwendung unterbringen und umgekehrt. So können Sie die Vorzüge aus beiden Welten nutzen.

Die Oberfläche einer WPF-Anwendung wird mithilfe von XAML entworfen. XAML steht für eXtensible Application Markup Language. Es handelt sich dabei um eine XML-basierte Markierungssprache, die nicht nur in der WPF zum Einsatz kommt. Innerhalb des Visual Studio können Sie die Oberfläche gleichzeitig in zwei Ansichten sehen: im grafischen Entwurf und im XAML-Code.

Bei Erzeugung eines neuen Projekts innerhalb des Visual Studio müssen Sie die Vorlage WPF-Anwendung statt der Vorlage Windows Forms-Anwendung auswählen.

Eine Anwendung kann ausschließlich aus XAML-Code oder ausschließlich aus Code in einer der Programmiersprachen bestehen, zum Beispiel Visual Basic oder Visual C#. Meist wird allerdings gemischt: die Oberfläche wird in XAML entworfen, die Abläufe werden in einer Programmiersprache codiert. Jedoch: die Übergänge sind fließend, es herrscht keine strenge Trennung wie in Windows Forms.

Die gesamte Vielfalt der WPF kann hier nur ansatzweise, in einigen Beispielen gezeigt werden. Mehr zum Thema in meinem Buch: Einstieg in WPF 4.5, Grundlagen und Praxis, ISBN 978-3-8362-1967-9, bei Galileo Press. Auf dem Datenträger zu diesem Buch gibt es auch alle Beispielprojekte für Visual Basic.


Rheinwerk Computing - Zum Seitenanfang

12.1 LayoutZur vorigen Überschrift

Die Oberfläche einer Anwendung wird über das Layout festgelegt, sie sollte stufenlos skalierbar sein und unterschiedlichen Umgebungen angepasst werden können. Im nachfolgenden Projekt WPFLayoutKombi sehen Sie zwei der zahlreichen Möglichkeiten der WPF. Es werden einige Buttons auf unterschiedliche Arten angeordnet, siehe Abbildung 12.1.

Abbildung

Abbildung 12.1 Projekt WPFLayoutKombi

Nach Erstellung eines neuen Projekts erscheint unter anderem das Hauptformular der Anwendung in der Datei MainWindow.xaml in zwei Ansichten:

  • in der Design-Ansicht: als Oberfläche, zu der die Elemente aus der Toolbox hinzugefügt werden können, wie aus Windows Forms gewohnt
  • in der Code-Ansicht: als XAML-Code, in dem die Elemente durch Codierung hinzugefügt werden können

Die Codezeilen für ein leeres Formular sind bereits vorhanden. Diese werden für unser Projekt in der Code-Ansicht ergänzt und angepasst:

<Window x:Class="MainWindow"
xmlns="http://..." xmlns:x="http://..."
Title="WPFLayoutKombi" Height="200" Width="300">
<StackPanel Orientation="Horizontal">
<Canvas Width="100" Height="130" Margin="5"
Background="LightGray">
<Button x:Name="b1" Canvas.Top="50" Canvas.Left="25"
Click="b1_Click">Button 1</Button>
<Button x:Name="b2" Canvas.Bottom="5" Canvas.Right="5"
Click="b2_Click">Button 2</Button>
</Canvas>
<StackPanel Width="100" Margin="5"
Background="LightBlue"
Button.Click="sp_Click">
<Button x:Name="b3" Margin="5">Button 3</Button>
<Button x:Name="b4" Margin="5">Button 4</Button>
<Button x:Name="b5" Margin="5">Button 5</Button>
</StackPanel>
</StackPanel>
</Window>

Listing 12.1 Projekt »WPFLayoutKombi«, XAML-Code

XAML-Dokumente bestehen wie XML-Dokumente aus einer Hierarchie von Elementen mit Attributen. Das Hauptelement ist hier ein Fenster, das vom Typ Window abgeleitet ist. Der Name des abgeleiteten Typs wird über x:Class angegeben, hier MainWindow.

Bereits bei Erstellung eines Projekts werden die wichtigsten Klassen der WPF mithilfe von zwei Namespaces (hier nur mit xmlns=http://... und xmlns:x=http://... angedeutet) automatisch zur Verfügung gestellt.

Die XAML-Elemente haben verschiedene Eigenschaften, zum Beispiel Title, Height oder Background. Title ist vom Typ Zeichenkette, die Werte anderer Elemente werden ggf. mithilfe von Type Convertern umgewandelt, zum Beispiel in Zahlen, Farben oder boolesche Werte.

Ein Window darf genau ein Unterelement haben, hier ist es vom Typ StackPanel. Ein StackPanel ist ein Container mit einem »Stapel« von Unterelementen, hier einem Canvas und einem weiteren StackPanel. Mit dem Wert Horizontal für das Attribut Orientation wird dafür gesorgt, dass die Unterelemente nebeneinander gestapelt werden.

Innerhalb eines Canvas können die Unterelemente absolut positioniert werden. Dieses Layout stellt einen Kompromiss innerhalb der WPF dar, da die Oberfläche so nicht mehr frei skalierbar ist. Der Canvas hat Breite, Höhe und Hintergrundfarbe. Über die Eigenschaft Margin stellen Sie den Abstand eines Elements zu seinem übergeordneten Element ein.

Eine Ereignisprozedur zu einem XAML-Element erzeugen Sie wie folgt:

  • Markieren Sie das XAML-Element in der Design-Ansicht oder in der Code-Ansicht
  • Wechseln Sie im Eigenschaftenfenster auf die Ansicht Ereignisse
  • Führen Sie bei dem betreffenden Ereignis einen Doppelklick aus

Falls das Element im XAML-Code bereits einen Wert zum Bezeichner x:Name hat, dann heißt die Prozedur Bezeichner_Ereignis(), ansonsten heißt sie Elementtyp_Ereignis(), also zum Beispiel b1_Click() bzw. Button_Click().

Die Position der Elemente innerhalb des Canvas wird über die Eigenschaften Canvas.Top, Canvas.Left, Canvas.Bottom und Canvas.Right eingestellt. Es handelt sich dabei um sogenannte Attached Properties. Dies sind eigentlich Eigenschaften anderer Element-Typen (und zwar des Canvas), die aber hier (im Button-Element) benötigt werden.

Innerhalb des inneren StackPanels sind drei Buttons gestapelt, standardmäßig untereinander. Auch der Click auf einen dieser Buttons führt zu einer Ereignisprozedur. Dies liegt am sogenannten Event Routing: Falls bei einem Element zu dem ausgelösten Ereignis keine passende Prozedur registriert ist, dann wird das Ereignis zum übergeordneten Element weitergeleitet.

In diesem Falle findet sich im StackPanel das Event Button.Click. Es handelt sich dabei um ein sogenanntes Attached Event. Dies sind eigentlich Ereignisse anderer Element-Typen (und zwar des Button-Elements), die aber hier (im StackPanel) benötigt werden. Eine Prozedur zu einem Attached Event muss »von Hand« erzeugt werden. In der Ansicht Ereignisse wird also kein Doppelklick ausgeführt, sondern der Name der Ereignisprozedur eingetragen, anschließend wird die ¢-Taste betätigt.

Es folgt der Programmiercode aus der Datei MainWindow.xaml.vb:

Class MainWindow
Private Sub b1_Click(sender As Object,
e As RoutedEventArgs)
MessageBox.Show("b1")
End Sub

Private Sub b2_Click(sender As Object,
e As RoutedEventArgs)
MessageBox.Show("b2")
End Sub

Private Sub sp_Click(sender As Object,
e As RoutedEventArgs)
MessageBox.Show(e.Source.Name)
End Sub
End Class

Listing 12.2 Projekt »WPFLayoutKombi«, Programmiercode

Es werden jeweils die Namen der geklickten Buttons ausgegeben. Im Falle der Buttons innerhalb des StackPanels muss zunächst der Auslöser ermittelt werden, Das Objekt sender verweist auf das StackPanel. Die Eigenschaft Source des Objekts e verweist dagegen auf den tatsächlich auslösenden Button.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Visual Basic 2012






 Visual Basic 2012


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Einstieg in Python






 Einstieg in Python


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
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.


[Rheinwerk Computing]

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