Von Access zu WPF: Fenster

Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!

Unter Access war alles so einfach und gewohnt. Das Access-Fenster bildete den Rahmen, zeigt das Ribbon an oder stellte die Formulare und Berichte in Anwendungen dar. Für das Öffnen der Objekte brauchte man nur die DoCmd.Open…-Anweisung zu kennen. Unter .NET sieht das ganz anders aus: Das Anwendungsfenster ist bereits ein Formular, es gibt andere Steuerelemente – und das Öffnen von Formularen erfolgt auch ganz anders.

Wenn Sie eine WPF-Anwendung erstellen (in diesem Beispiel für Programmiersprache C#), wählen Sie nach dem Starten von Visual Studio (hier in der Community-Edition der Version 2013) den Menüeintrag Datei|Neu|Projekt… aus. Danach erscheint der Dialog Neues Projekt, wo Sie unter Vorlagen|Visual C#|Windows-Desktop die Vorlage WPF-Anwendung selektieren (siehe Bild 1). Es gibt noch einige weitere Anwendungstypen auf Basis von WPF, aber wir konzentrieren uns hier zunächst auf die Desktop-Anwendung.

Neues WPF-Projekt für Visual C# erstellen

Bild 1: Neues WPF-Projekt für Visual C# erstellen

Visual Studio bietet hier direkt ein Verzeichnis an, in dem das Projekt standardmäßig angelegt wird. Diesen können Sie natürlich ändern. Wichtig ist zu wissen, dass im angegebenen Verzeichnis ein Unterverzeichnis mit dem Namen des Projekts angelegt wird, das schließlich die eigentlichen Projektdateien enthält. In diesem Fall soll das Projekt VonAccessZuWPF heißen.

Das Hauptfenster

Im Vergleich zu Access, wo das Access-Fenster das Hauptfenster der Anwendung ist (wenn Sie es nicht mit Tricks ausgeblendet haben), definieren Sie das Hauptfenster Ihrer WPF-Anwendung komplett neu. Dazu bietet Visual Studio im neuen Projekt standardmäßig ein Fenster namens MainWindow hinzu. Wir wollen uns an dieser Stelle daraufhin einigen, statt wie in Access von Formularen künftig von Fenstern zu sprechen.

Das Formular wird mithilfe von zwei Dateien beschrieben:

  • MainWindow.xaml: Enthält die Beschreibung des Aussehens des Fensters.
  • MainWindow.xaml.cs: Enthält den Code des Fensters. Unter Visual Basic würde die Endung vb lauten.

Die .xaml-Datei stellt Visual Studio in einem Bereich dar, der oben den Entwurf des Fensters anzeigt und unten den XML-Code, der das Aussehen definiert. Sie können das Aussehen auf folgenden Wegen beeinflussen:

  • durch Ändern der Größe, Position oder anderer Eigenschaften des Fensters und der enthaltenen Steuerelemente direkt im Entwurf,
  • durch Ändern der Eigenschaften im Bereich Eigenschaften oder
  • durch Anpassen des XML-Codes zur Definition des Aussehens des Fensters.

Jegliche Änderungen an diesen drei Stellen wirken sich direkt auf die jeweils anderen Wege aus. Wenn Sie also im XML-Code die Breite des Window-Elements mit dem Attribut Width auf 600 einstellen, wird das Fenster direkt in dieser Breite dargestellt und auch der entsprechende Eintrag im Eigenschaftsfenster wird geändert.

Beispielprojekt: Den Code für die Beispiele der folgenden Abschnitte finden Sie in einem neuen, jungfräulichen WPF-Projekt.

Code des Hauptfensters

Die Datei MainWindow.xaml enthält den folgenden Code:

<Window x:Class="VonAccessZuWPF.MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/            xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         Title="MainWindow" Height="350" Width="600">
     <Grid>
     </Grid>
</Window>

Hier finden Sie die beim Start vorhandenen Einstellungen: Der Titel lautet MainWindow, außerdem sind Höhe und Breite auf 350 und 600 festgelegt. Eine weitere wichtige Information finden Sie gleich in der ersten Zeile: Unter x:Class gibt das Dokument die C#-Datei an, die den Code für dieses Fenster enthält – in diesem Fall VonAccessZuWPF.MainWindow. Alle Elemente, die Sie nun zum Fenster hinzufügen, landen als Beschreibung innerhalb des Grid-Elements ().

XAML und C#

Damit wird nun offensichtlich: Es gibt zwei verschiedene Dateien zur Programmierung eines Fensters unter WPF – die XML-Datei mit der XAML-Definition der Benutzeroberfläche und eine C#-Datei mit den Funktionen des Fensters. Im Vergleich mit einem Access-Formular entspricht die Entwurfsansicht des WPF-Fensters dem Formularentwurf und die C#-Datei mit dem Code dem Klassenmodul des Formulars.

Unter Access werden intern allerdings sowohl die Beschreibung des Formulars sowie der Steuerelemente als auch der VBA-Code in einem einzigen Dokument untergebracht, was auch deutlich wird, wenn Sie dieses vom VBA-Fenster etwa mit der SaveAsText-Anweisung in eine Textdatei exportieren und in einem Texteditor ansehen. Das “Klassenmodul” mit dem C#-Code hinter dem Fenster MainWindow hat den folgenden Inhalt:

namespace VonAccessZuWPF
{
     /// <summary>
     /// Interaktionslogik für MainWindow.xaml
     /// </summary>
     public partial class MainWindow : Window
     {
         public MainWindow()
         {
             InitializeComponent();
         }
     }
}

Hier geschieht noch nichts Spektakuläres, da wir noch keine Ereignisprozeduren et cetera angelegt haben. Die einzige Methode namens InitializeComponent erstellt kurz gefasst das Fenster auf Basis der XAML-Datei.

Wenn Sie genau wissen wollen, welcher Code sich hinter einer Anweisung befindet, klicken Sie ähnlich wie im VBA-Editor mit der rechten Maustaste und wählen den Eintrag Definition einsehen aus. Es erscheint dann ein gelb hinterlegter Bereich mit der Routine, die durch die Anweisung ausgelöst wird (siehe Bild 2).

Der Code hinter einer Anweisung wird farbig hinterlegt eingeblendet.

Bild 2: Der Code hinter einer Anweisung wird farbig hinterlegt eingeblendet.

Trennung von Oberfläche und Code

 

Schreibe einen Kommentar