Windows Phone 8 Eine Einführung in XAML

Das Entwickeln von Software ist normalerweise ein zweistufiger Prozess, bei dem die Benutzeroberfläche und die Geschäftslogik der Anwendung entwickelt werden. Windows Phone ist keine Ausnahme von diesem Paradigma. Bei der Entwicklung für Windows Phone, XAML wird für die Implementierung der Benutzeroberfläche von Windows Phone-Anwendungen verwendet.

1. Was ist XAML??

XAML oder Extensible Application Markup Language ist eine deklarative Sprache, die von Microsoft entwickelt wurde und in Windows Phone zum Erstellen grafischer Benutzeroberflächenobjekte verwendet wird. Wenn Sie mit XML, Ein Code-Snippet von XAML wird dann sehr vertraut aussehen. XAML ist ein C # Entwickler was HTML ist an einen Webentwickler. Es ist die Grundlage für das Design der Benutzeroberfläche für Windows Phone.

Die Windows Phone-Plattform verfügt über eine Vielzahl von Bausteinen wie Schaltflächen, Textblöcke, Textfelder usw. Auch wenn eine Windows Phone 8-Anwendung nur mit C # entwickelt werden kann, ist dies unpraktisch und umständlich.

XAML vereinfacht die Erstellung von Benutzeroberflächen. Nach dem Erstellen eines neuen Windows Phone 8-Projekts oder einer neuen Seite in Visual Studio werden zwei Ansichten angezeigt. Eine Ansicht zeigt den XAML-Code, während die andere Ansicht dem Entwickler seine visuelle Designdarstellung anzeigt.

Um dies besser zu verstehen, besuchen wir das Projekt, das wir im vorherigen Lernprogramm erstellt haben, in dem wir unsere erste Windows Phone 8-Anwendung erstellt haben.

               

Sie bemerken sofort die gleiche hierarchische Struktur, die Sie in XML und HTML finden. Jedes Element im XAML-Code stellt ein Windows Phone-Steuerelement dar, auf das wir später in dieser Serie eingehen werden. Sie werden feststellen, dass jedes Element wie in XML oder HTML ein öffnendes und ein schließendes Tag hat. Sie können auch sehen, dass einige Elemente zusätzliche Attribute haben, die folgende Struktur haben:

   

Ich werde auf jedes Element in der XAML-Datei als Steuerelement verweisen, da es sich um Windows Phone-Steuerelemente handelt, bei denen es sich um Objekte handelt, die Teil des Frameworks sind. Jedem dieser Steuerelemente können Eigenschaften zugeordnet sein. Einige dieser Steuerelemente, wie z Gitter und StackPanel Steuerelemente können sogar andere Steuerelemente enthalten. Schauen Sie sich beispielsweise an, wie StackPanel Kontrolle mit der Name Eigentum von TitlePanel enthält zwei Textblock Kontrollen.

Diese hierarchische Anordnung von Elementen ermöglicht es Entwicklern, die Benutzeroberfläche von Windows Phone-Anwendungen wesentlich einfacher zu gestalten, und bietet auch eine Struktur zwischen Steuerelementen, aus denen die Benutzeroberfläche einer Windows Phone-Anwendung besteht.

2. XAML versus Code

Wie ich bereits in diesem Artikel gesagt habe, ist es möglich, die gesamte Benutzeroberfläche einer Windows Phone-Anwendung in C # zu erstellen, ohne XAML zu verwenden. In der Realität ist dies jedoch nicht sehr praktisch. Dies wird nicht empfohlen, da das Design der Benutzeroberfläche der Anwendung unaufgeräumt und ein wenig allgegenwärtig ist.

Durch die strikte Verwendung von C # zum Erstellen der Benutzeroberfläche der Anwendung wird die Verwendung von MVVM Entwurfsmuster, das in die Windows Phone-Entwicklung eingebettet ist. Dies bedeutet fortgeschrittene Techniken, wie z Datenbindung, wird schwieriger zu implementieren.

Schauen wir uns die beiden Techniken XAML und C # genauer an, um die Benutzeroberfläche einer Anwendung zu erstellen. Für diesen Vergleich zeige ich erstmal wie Textblock und ein Taste Kontrolle wird innerhalb von a deklariert StackPanel Steuerung mit XAML. Ich zeige Ihnen dann das Äquivalent in C #.

XAML

 Ein einfacher TextBlock  

Sie können sehen, wie deklarativ das obige XAML-Snippet ist. Die Hierarchie der Steuerelemente ist leicht zu verstehen. Bei der Verwendung von XAML gibt es einen weiteren Vorteil. Das Ergebnis unserer Änderungen in Visual Studio können Sie direkt durch den Entwurfsvorschaubereich sehen, der sich in Visual Studio normalerweise links befindet.

C #

Mal sehen, wie wir dieselbe Benutzeroberfläche mit C # anstelle von XAML implementieren können.

// Erstelle unser StackPanel StackPanel stackPanel = new StackPanel (); this.Content = stackPanel; // Erstelle unser TextBlock TextBlock textBlock = new TextBlock (); textBlock.Margin = neue Dicke (10); textBlock.Text = "Ein einfacher TextBlock"; stackPanel.Children.Add (textBlock); // Erstelle unseren Button Button button = new Button (); button.Margin = neue Dicke (20); button.Content = "Einfacher Button"; stackPanel.Children.Add (Schaltfläche);

Wie Sie sehen, ist es im Vergleich zu XAML etwas unübersichtlicher und wir können das Ergebnis unserer Änderungen nicht sofort erkennen. Möglicherweise haben Sie auch festgestellt, dass der Codeblock in C # fast doppelt so lang ist wie der Code und nicht so lesbar ist wie das zuvor beschriebene XAML-Snippet.

Für die Entwicklung von Windows Phone ist XAML die empfohlene Methode zum Erstellen von Benutzeroberflächen. Es kann jedoch Situationen geben, in denen kompliziertere Steuerelemente implementiert werden müssen, die mit XAML schwer zu erstellen sind, beispielsweise wenn das Steuerelement in gewissem Maße dynamisch sein muss. Auch wenn diese Situationen seltener sind, ist es gut zu wissen, dass wir auf C # zurückgreifen können..

Fazit

XAML ist ein wesentlicher Bestandteil der Windows Phone-Entwicklung. Daher ist ein gründliches Verständnis unerlässlich. Ich empfehle Ihnen, sich die offizielle XAML-Dokumentation von Microsoft im Windows Phone Dev Center anzusehen. Es enthält ausführliche Informationen zur Verwendung von XAML für die Entwicklung von Windows Phone.

In diesem Lernprogramm wurde die Rolle von XAML in der Windows Phone-Entwicklung und der Vergleich von C # zum Erstellen von Benutzeroberflächen beschrieben. Im nächsten Lernprogramm werden wir weiterhin mit XAML arbeiten und uns mit einigen der gebräuchlicheren Windows Phone-Steuerelemente, deren Verwendung und ihrer Implementierung in einer Windows Phone 8-Anwendung auseinandersetzen.