Sie sind hier:
Wissen
Telefon (Mo-Fr 9 bis 16 Uhr):
0201/649590-0
|
Kontaktformular
MENU
Medien
Übersicht
Lexikon/Glossar
Spickzettel
Weblog
Konferenzvorträge
Fachbücher
Fachartikel
Leserportal
Autoren gesucht!
Literaturtipps
Praxisnahe Fallbeispiele
Downloads
Newsletter
.NET
Startseite
.NET 8.0
.NET 7.0
.NET 6.0
.NET 5.0
.NET Core
.NET 4.0/4.5.x/4.6.x
.NET 3.0/3.5
.NET 2.0
.NET-Lexikon
Programmiersprachen
Entwicklerwerkzeuge
Klassenreferenz
Softwarekomponenten
Windows Runtime
World Wide Wings-Demo
Versionsgeschichte
Codebeispiele
ASP.NET
Artikel
Bücher
Schulung & Beratung
Konferenzen/Events
ASP.NET
Startseite
Lexikon
Sicherheit
Konfiguration
Global.asax
Tracing
Technische Beiträge
Klassenreferenz
Programmiersprachen
Entwicklerwerkzeuge
Softwarekomponenten
Forum
Schulung & Beratung
PowerShell
Startseite
Commandlet-Referenz
Codebeispiele
Commandlet Extensions
Versionsgeschichte
Schulungen+Beratung
Windows
Startseite
Windows Runtime (WinRT)
Windows PowerShell
Windows Scripting
Windows-Schulungen
Windows-Lexikon
Windows-Forum
Scripting
Startseite
Lexikon
FAQ
Bücher
Architektur
Skriptsprachen
Scripting-Hosts
Scripting-Komponenten
COM/DCOM/COM+
ADSI
WMI
WMI-Klassenreferenz
Scripting-Tools
WSH-Editoren
Codebeispiele
.NET-Scripting
Forum
Schulung & Beratung
Nutzer
Anmeldung/Login
Buchleser-Registrierung
Gast-Registrierung
Hilfe
Website-FAQ
Technischer Support
Site Map
Tag Cloud
Suche
Kontakt
Erklärung des Begriffs: eXtensible Application Markup Language (XAML)
Begriff
eXtensible Application Markup Language
Abkürzung
XAML
Eintrag zuletzt aktualisiert am
16.05.2021
Zur Stichwortliste unseres Lexikons
Was ist
eXtensible Application Markup Language
?
eXtensible Application Markup Language (XAML) ist der Name einer
XML
-basierten Sprachen zru Darstellung von .NET-
Objekt
bäumen in
XML
-Form. XAML wird primär zur Beschreibung grafischer Benzutzeroberflächen verwendet, aber für das Drucken (
XPS
) sowie auch in der
Windows Workflow Foundation
(WF) verwendet Microsoft XAML um Workflows darzustellen.
Abkürzung: XAML
gesprochen "zammel"
Aktuelle XAML-Dialekte für Benutzeroberflächen
1. XAML in
Windows Presentation Foundation
(
WPF
)
2. XAML in
Xamarin Forms
(seit 2014) und deren Nachfolger
.NET Multi-Platform App UI
(.NET MAUI)
3. XAML in
Universal Windows Platform App
s (
UWP
) alias
UWP
XAML Framework oder
WinRT
XAML Framework sowie der damit zusammenhängenden
Windows UI Library
2 (WinUI2)
4. XAML in der
Windows UI Library
3 (
WinUI3
)
Frühere XAML-Dialekte für Benutzeroberflächen
1. XAML in Silverlight
2. XAML in
Windows 8
"
Metro
" Apps
XAML Standard
Spezifikation zur Standardisierung der XAML-Dialekte, die Mitte 2017 began.
Ähnlichkeiten zu früheren Techniken
Ein XAML-Dokument ist die serialisierte Form eines .NET-
Objekt
modells. Dieses Konzept hat Microsoft schon bereits früher in .NET angewendet, z.B. bei
ASP.NET
-
Serversteuerelement
en,
Microsoft Build
und dem Konfigurationsmodell des
.NET Framework
, erst seit
.NET 3.0
erst heißt dieses Konzept aber XAML und XAML bietet auch noch einige Konzepte, die es vorher nicht gab.
XAML ist syntaktisch jedoch eine Weiterentwicklung des in
ASP.NET
verwendeten Formats.
Managed Code
XAML versus
Native Code
XAML
Im Rahmen von
WinRT
Microsoft hat XAML in native Code neu implementiert. Anders als in dem .NET-basierten XAML in
WPF
und Silverlight wird das
WinRT
-XAML also direkt in Maschinencode umgesetzt und ist damit voraussichtlich schneller.
XML
-Namensräume
Allgemeiner
XML
-Namensraum für XAML:
http://schemas.microsoft.com/winfx/2006/xaml
und
http://schemas.microsoft.com/winfx/2009/xaml
XAML in
WPF
, Silverlight,
UWP
und
WinUI3
:
http://schemas.microsoft.com/winfx/2006/xaml/presentation
XAML in
Xamarin.Forms
:
http://xamarin.com/schemas/2014/forms
XAML in .NET MAUI:
http://schemas.microsoft.com/dotnet/2021/maui
XAML in Windows Workflow:
http://schemas.microsoft.com/netfx/2009/xaml/activities
.NET-Namensräume
XAML in
WPF
und Silverlight: System.Windows.UI
XAML in
UWP
: Windows.UI
XAML in
WinUI3
: Microsoft.UI
XAML in
Xamarin.Forms
:
Xamarin.Forms
XAML in MAUI: Microsoft.Maui
Beispiel
XAML-Code:
<
Button
Name="C_
Button
"
Click="HW
Button
_Click"
Dock
Panel
.Dock="Fill"
Width="100"
Margin="10,10,10,10">
Hallo Welt!
</
Button
>
entspricht folgendem Code:
Button
b = new
Button
();
b.With=100;
b.Content = “Hello World!";
b.OnClick += new ClickEvent
Handle
r(HW
Button
_Click);
XAML-Konzepte
XAML besteht aus folgenden Grundkonzepten:
XAML Object Element Syntax
: Beim Parsen eines XAML-Dokuments wird für jedes
XML
-Element ein gleichnamiges .NET-
Objekt
instanziiert. Jedes XAML-Dokument besitzt (wie jedes
XML
-Dokument) genau ein Wurzelelement, sodass ein XAML-Dokument auf genau ein .NET-
Objekt
mit Unterobjekten abgebildet wird.
XAML Attribute Syntax
: Die Attribute des .NET-
Objekt
s werden durch die Attribute des
XML
-Element die Attribute des .NET-
Objekt
s befüllt.
XAML Content Syntax
: Der Inhalt eines
XML
-Elements kann einem bestimmten, in der Klas-sendefinition festgelegten Standardattribut zugewiesen werden.
XAML Property Element Syntax
: Ein .NET-Attribut kann auch durch ein
XML
-Element be-schrieben werden, in dem der Klassenname von dem Attributnamen durch einen Punkt getrennt ist. Da ein
XML
-Attribut immer nur einen Wert enthalten kann, eröffnet die
XAML Property Element Syntax
die Möglichkeit, ein .NET-Attribut deklarativ mit Unterobjekten zu befüllen.
XAML Attached Property Syntax
: Ein Unterelement kann Attribute eines übergeordneten Ele-ments setzen.
XAML Markup Extension Syntax
: Anstelle eines
Literal
s kann man als Attributwert einen Aus-druck angeben, der dynamische ausgewertet wird. Dies wird zum Beispiel für
Datenbindung
einge-setzt, um den Inhalt von zwei Steuerelementen oder zwischen einem Steuerelement und einer Da-tenquelle synchron zu halten, ohne dafür Programmcode einzusetzen. Ein anderes Anwendungsge-biet ist der Verweis auf Ressourcen. Bei der
XAML Markup Extension Syntax
steht der Ausdruck in geschweiften Klammern.
XAML-Namensräume
In einem XAML-Dokument können
XML
-Elemente erscheinen, die aus unterschiedlichen Bibliothe-ken stammen.
XAML-Basiselemente´
http://schemas.microsoft.com/winfx/2006/xaml
XAML für
WPF
http://schemas.microsoft.com/winfx/2006/xaml/presentation
XAML für WF
http://schemas.microsoft.com/winfx/2006/xaml/workflow
Die Namenräume werden wie in
XML
üblich eingebunden:
<Window x:Class="
WWW
ings
WPF
.F
XAMLSyntax"
xmlns="
http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="
http://schemas.microsoft.com/winfx/2006/xaml"
… >
Es ist kein Schreibfehler, dass in den Namensraum-
URL
s noch der Begriff "WinFX" erscheint. Microsoft hat die Namensänderung von WinFX zu
.NET 3.0
hier nicht mehr vollzogen.
XAML in
WPF
Die
Windows Presentation Foundation
(
WPF
) ist ein Framework zur Entwicklung grafischer Benutzerschnittstellen für Desktop-Anwendungen und damit ein Ersatz für die mit .NET 1.x eingeführte
Windows Forms
-Bibliothek. Im Gegensatz zu
Windows Forms
kann bei
WPF
die Beschreibung der Oberfläche durch
XML
-Elemente erfolgen. Microsoft hat dafür eine
XML
-Sprache mit Namen Extensible Application Markup Language (XAML) entwickelt.
XAML ist eine
XML
-basierte Sprache mit der einzelne .NET-
Objekt
e und ganze
Objekt
bäume in
XML
-Form ausdrückbar sind. Innerhalb von
WPF
wird dies zur Beschreibung von Oberflächenelemente wie <TextBlock>, <
TextBox
>, <
Button
>, <
ListBox
>, <ToolTip>, <Line>, <Polygon>, <MediaElement> u.v.m. Verwendet. Elemente sind Teile von
Container
n, die die Anordnung bestimmen, z.B. <Canvas>, <Grid>, <Dock
Panel
> und <Frame>. Zu jedem XAML-Element existiert eine gleichnamige .NET-Klasse in der
.NET 3.0
-Klassenbibliothek im Namensraum System.Windows in .NET-Assemblies PresentationCore.dll und PresentationFramework.dll. Dabei darf man diesen neuen Namensraum nicht mit dem bereits im Jahre 2002 eingeführten Namensraum
System.Windows.Forms
aus der .NET-Klassenbibliothek für
Windows Forms
verwechseln. Es wäre sicherlich geschickter, die
WPF
-Klassen besser von den
Windows Forms
-Klassen zu trennen.
Die Abbildbarkeit der XAML-Elemente in Klassen ermöglicht sowohl die Kompilierung von XAML-Anwendungen als auch die komplette Erstellung von
WPF
-Anwendungen durch Programmcode. Die Abbildbarkeit der XAML-Elemente in Klassen ermöglicht sowohl die Kompilierung von XAML-Anwendungen als auch die komplette Erstellung von
WPF
-Anwendungen durch Programmcode. Der Einsatz von
XML
bietet den Vorteil einer klaren Trennung zwischen Code und Layout.
Microsoft hat diese Steuerelementarchitektur aus
ASP.NET
-Webanwendungen übernommen. Tagbasierte Windows-Anwendungen waren bisher nur durch so genannte
HTA
(
HTML
Applications) möglich, die jedoch kaum Verwendung fanden. Die Steuerelementnamen von
HTML
/
ASP.NET
und XAML sind aber so verschieden, dass weiterhin ein Austausch von grafischen Oberflächen zwischen Windows und Web nicht einfach fällt. Ebenso fehlt in
WPF
die Option, eine XAML-Anwendung per Doppelklick auf eine .xaml-Datei automatisch zu kompilieren.
In XAML können auch selbstdefinierte .NET-
Objekt
e eingebunden werden (z.B. zur Anzeige bestimmte Daten), die dann aber explizite Einbindung des Namensraums erfordern (vgl. dazu das Bei-spAbschnitt "XAML-
Serialisierung
").
Querverweise zu anderen Begriffen im Lexikon
Windows Presentation Foundation (WPF)
Universal Windows Platform App (UWP App)
XAML Attached Property Syntax
XAML Property Element Syntax
XAML Markup Extension Syntax
Windows Workflow Foundation (WF)
XAML Object Element Syntax
.NET Multi-Platform App UI (MAUI)
XAML Attribute Syntax
System.Windows.Forms
XAML Content Syntax
Serversteuerelement
Windows UI Library (WinUI)
Microsoft Build (MSBuild)
.NET Framework
Serialisierung
Windows Forms (WinForms)
Xamarin Forms (XF)
XAML Standard
Xamarin.Forms
Datenbindung
Managed Code
Native Code
Container
Windows 8
.NET 3.0
Literal
ListBox
TextBox
Objekt
Button
Handle
Metro
Panel
Active Server Pages .NET (ASP.NET)
Windows UI Library 3.0 (WinUI3)
Windows Runtime (WinRT)
Hypertext Markup Language (HTML)
Universal Windows Platform (UWP)
Uniform Resource Locator (URL)
Extensible Markup Language (XML)
XML Paper Specification (XPS)
Windows Presentation Foundation (WPF)
World Wide Web (WWW)
HTML-Applikation (HTA)
Beratung & Support
Beratung/Consulting: Design und Usability ("User Experience - UX") von XAML-Anwendungen (WPF, UWP, WinUI, Xamarin, MAUI)
Anfrage für Beratung/Consulting zu eXtensible Application Markup Language XAML
Gesamter Beratungsthemenkatalog
Technischer Support zum eXtensible Application Markup Language XAML
Schulungen zu diesem Thema
Extensible Application Markup Language (XAML)
Model-View-ViewModel (MVVM)-Pattern mit XAML für WPF und/oder Windows UI Library (WinUI)
Microsoft Expression Blend - Benutzerschnittstellendesign für XAML-basierte Oberflächen (WPF, UWP, WinUI)
Windows Modern Apps/Windows Universal Apps entwickeln mit der Windows Runtime (WinRT), XAML und C++/CX sowie der WRL
Windows Presentation Foundation (WPF) / XAML für Grafiker/Designer/UX-Engineers
Windows Modern Apps/Windows Universal Apps entwickeln mit der Windows Runtime (WinRT), XAML und .NET/C#/Visual Basic
Windows Presentation Foundation (WPF) - Basiswissen
.NET-Basisklassenbibliothek (.NET Base Class Library)
.NET Akademie: Windows UI Library 3 (WinUI 3): Moderne Windows-Desktop-Anwendungen (3-Tages-Agenda des öffentlichen Seminars)
Visual Studio 2022 (Visual Studio 17.x) Update - Die Neuerungen gegenüber Visual Studio 2019
Windows UI Library 3 (WinUI 3)
.NET Akademie: Webservices, verteilte Systeme, SOA und REST mit .NET/.NET Core (WCF, ASP.NET WebAPI)
.NET Akademie: .NET MAUI: .NET-/C#-Cross-Plattform-Entwicklung für Android, iOS (iPhone, iPad) und Windows (3-Tages-Agenda des öffentlichen Seminars)
Visual Studio 2017 (Visual Studio 15.x) Update - Die Neuerungen gegenüber Visual Studio 2015
Avalonia - Cross-Plattform-GUI-Anwendungen mit .NET
Objektorientierte Entwurfsmuster (Design-Pattern/Architektur-Pattern) mit .NET (C#, Visual Basic .NET)
.NET 4.5-Update - Die Neuerungen in .NET Framework 4.5/4.5.1/4.5.2 und Visual Studio 2012/2013 im Überblick
Windows Presentation Foundation (WPF) - Aufbauwissen
.NET 4.8 - Die Neuerungen in .NET Framework 4.8 im Überblick
Visual Studio 2015 (Visual Studio 14.x) Update - Die Neuerungen gegenüber Visual Studio 2013
Windows Presentation Foundation (WPF) für typische Geschäftsanwendungen
Team Foundation Server 2018 (TFS 2018) - Die Neuigkeiten für Umsteiger von TFS 2017
.NET Akademie: Windows-Desktop-Anwendungen mit der Windows Presentation Foundation (WPF) (3-Tages-Agenda des öffentlichen Seminars)
.NET Multi-Platform App UI (MAUI)
Windows-Desktop-Anwendungen: Von den .NET- und C#-Grundlagen zu Windows Forms und Windows Presentation Foundation (WPF)
Microsoft Expression Studio
Visual Studio 2013 (Visual Studio 12.0) Update - Die Neuerungen gegenüber Version 2012
ReSharper für Visual Studio
Visual Studio 2012 (Visual Studio 11.0) Update - Die Neuerungen gegenüber Visual Studio 2010
SketchFlow-Prototyping mit Blend
Anfrage für eine individuelle Schulung zum Thema eXtensible Application Markup Language XAML
Gesamter Schulungsthemenkatalog
Bücher zu diesem Thema
Windows Store Apps entwickeln mit C# und XAML - Crashkurs
WPF 4.5 und XAML
Alle unsere aktuellen Fachbücher
E-Book-Abo für ab 99 Euro im Jahr