Xamarin. Forms-XAML-GrundlagenXamarin.Forms XAML Basics

Beispiel herunterladen Das Beispiel herunterladenDownload Sample Download the sample

Die Extensible Application Markup Language (XAML) ist eine XML-basierte Sprache, die von Microsoft als Alternative zum Programmieren von Code zum Instanziieren und Initialisieren von Objekten und organisieren dieser Objekte in über-/unterordnungshierarchien erstellt wird.The eXtensible Application Markup Language (XAML) is an XML-based language created by Microsoft as an alternative to programming code for instantiating and initializing objects, and organizing those objects in parent-child hierarchies. XAML wurde an verschiedene Technologien innerhalb von .NET Framework angepasst, aber es wurde das größte Hilfsprogramm zum Definieren des Layouts von Benutzeroberflächen in den Windows Presentation Foundation (WPF), Silverlight, Windows-Runtime und den universellen Fenstern gefunden. Plattform (UWP).XAML has been adapted to several technologies within the .NET framework, but it has found its greatest utility in defining the layout of user interfaces within the Windows Presentation Foundation (WPF), Silverlight, the Windows Runtime, and the Universal Windows Platform (UWP).

Mit XAML können Entwickler Benutzeroberflächen in xamarin. Forms-Anwendungen mithilfe von Markup anstelle von Code definieren.XAML allows developers to define user interfaces in Xamarin.Forms applications using markup rather than code. XAML ist in einem xamarin. Forms-Programm nie erforderlich, aber es ist oft eher präglicher und visuell kohärenter als äquivalenter Code und potenziell Toolbar.XAML is never required in a Xamarin.Forms program, but it is often more succinct and more visually coherent than equivalent code, and potentially toolable. XAML eignet sich gut für die Verwendung mit der gängigen MVVM (Model-View-ViewModel)-Anwendungsarchitektur: XAML definiert die Ansicht, die mit dem ViewModel-Code durch XAML-basierte Daten Bindungen verknüpft ist.XAML is well suited for use with the popular MVVM (Model-View-ViewModel) application architecture: XAML defines the View that is linked to ViewModel code through XAML-based data bindings.

In einer XAML-Datei kann der xamarin. Forms-Entwickler Benutzeroberflächen definieren, indem er alle xamarin. Forms-Ansichten,-Layouts und-Seiten sowie benutzerdefinierte Klassen verwendet.Within a XAML file, the Xamarin.Forms developer can define user interfaces using all the Xamarin.Forms views, layouts, and pages, as well as custom classes. Die XAML-Datei kann entweder kompiliert oder in die ausführbare Datei eingebettet werden.The XAML file can be either compiled or embedded in the executable. In beiden Fällen werden die XAML-Informationen zur Buildzeit analysiert, um benannte Objekte zu suchen, und wieder zur Laufzeit, um Objekte zu instanziieren und zu initialisieren und um Links zwischen diesen Objekten und dem Programmiercode herzustellen.Either way, the XAML information is parsed at build time to locate named objects, and again at runtime to instantiate and initialize objects, and to establish links between these objects and programming code.

XAML hat mehrere Vorteile gegenüber äquivalenten Code:XAML has several advantages over equivalent code:

  • XAML ist oft prägnanter und besser lesbar als äquivalenter Code.XAML is often more succinct and readable than equivalent code.
  • Die über-/unterordnungshierarchie, die in XML enthalten ist, ermöglicht es XAML, die über-/unterordnungshierarchie von Benutzeroberflächen Objekten zu imitieren.The parent-child hierarchy inherent in XML allows XAML to mimic with greater visual clarity the parent-child hierarchy of user-interface objects.
  • XAML kann problemlos von Programmierern Hand geschrieben werden, kann aber auch von den visuellen Entwurfs Tools erstellt und generiert werden.XAML can be easily hand-written by programmers, but also lends itself to be toolable and generated by visual design tools.

Es gibt auch Nachteile, die sich hauptsächlich auf Einschränkungen beziehen, die in Markup Sprachen intrinsisch sind:There are also disadvantages, mostly related to limitations that are intrinsic to markup languages:

  • XAML darf keinen Code enthalten.XAML cannot contain code. Alle Ereignishandler müssen in einer Codedatei definiert werden.All event handlers must be defined in a code file.
  • XAML kann keine Schleifen für die wiederholte Verarbeitung enthalten.XAML cannot contain loops for repetitive processing. (Einige visuelle xamarin. Forms-Objekte – insbesondere ListView – können jedoch auf der Grundlage der Objekte in der ItemsSource Auflistung mehrere untergeordnete Elemente generieren.)(However, several Xamarin.Forms visual objects—most notably ListView —can generate multiple children based on the objects in its ItemsSource collection.)
  • XAML kann keine bedingte Verarbeitung enthalten (eine Datenbindung kann jedoch auf einen Code basierten Bindungs Konverter verweisen, der die bedingte Verarbeitung effektiv zulässt).XAML cannot contain conditional processing (However, a data-binding can reference a code-based binding converter that effectively allows some conditional processing.)
  • XAML kann im Allgemeinen keine Klassen instanziieren, die keinen Parameter losen Konstruktor definieren.XAML generally cannot instantiate classes that do not define a parameterless constructor. (Manchmal gibt es jedoch eine Möglichkeit, diese Einschränkung zu umgehen.)(However, there is sometimes a way around this restriction.)
  • XAML kann im Allgemeinen keine Methoden aufzurufen.XAML generally cannot call methods. (Diese Einschränkung kann manchmal auch überwunden werden.)(Again, this restriction can sometimes be overcome.)

Es ist noch kein visueller Designer zum Erstellen von XAML-Code in xamarin. Forms-Anwendungen vorhanden.There is not yet a visual designer for generating XAML in Xamarin.Forms applications. Alle XAML-Steuerpunkte müssen Hand geschrieben sein, aber es ist ein XAML-Previewervorhanden.All XAML must be hand-written, but there is a XAML Previewer. Programmierer, die noch nicht mit XAML vertraut sind, können Ihre Anwendungen häufig erstellen und ausführen, vor allem, wenn alles möglicherweise nicht korrekt ist.Programmers new to XAML might want to frequently build and run their applications, particularly after anything that might not be correct. Auch Entwickler mit vielen Funktionen in XAML wissen, dass das Experimentieren lohnenswert ist.Even developers with lots of experience in XAML know that experimentation is rewarding.

XAML ist im Grunde XML, aber XAML verfügt über einige eindeutige Syntax Funktionen.XAML is basically XML, but XAML has some unique syntax features. Die wichtigsten sind:The most important are:

  • Eigenschaften ElementeProperty elements
  • Angefügte EigenschaftenAttached properties
  • Markup ErweiterungenMarkup extensions

Diese Funktionen sind keine XML-Erweiterungen.These features are not XML extensions. XAML ist vollständig gültiger XML-Code.XAML is entirely legal XML. Diese XAML-Syntax Funktionen verwenden jedoch XML auf besondere Weise.But these XAML syntax features use XML in unique ways. Sie werden in den folgenden Artikeln ausführlich erläutert, die eine Einführung in die Verwendung von XAML zum Implementieren von MVVM haben.They are discussed in detail in the articles below, which conclude with an introduction to using XAML for implementing MVVM.

AnforderungenRequirements

In diesem Artikel wird davon ausgegangen, dass Sie mit xamarin. Forms vertraut sind.This article assumes a working familiarity with Xamarin.Forms. Außerdem wird in diesem Artikel eine gewisse Vertrautheit mit XML vorausgesetzt, einschließlich der Verwendung von XML-Namespace Deklarationen und den Begriffen Element, Tagund Attribut.This article also assumes some familiarity with XML, including understanding the use of XML namespace declarations, and the terms element, tag, and attribute.

Wenn Sie mit xamarin. Forms und XML vertraut sind, beginnen Sie mit dem Lesen von Teil 1. Der Einstieg in XAML.When you're familiar with Xamarin.Forms and XML, start reading Part 1. Getting Started with XAML.

Auf Channel 9 und auf YouTube finden Sie weitere Videos zu Xamarin.Find more Xamarin videos on Channel 9 and YouTube.