www.wikidata.de-de.nina.az
Extensible Application Markup Language XAML ausgesprochen ˈzae mɛl ist eine von Microsoft entwickelte Beschreibungssprache zur Gestaltung grafischer Benutzeroberflachen sowie zur Definition von Workflows in der Windows Workflow Foundation WF Zunachst wurde die neue deklarative Sprache fur das Net Framework 3 0 und 3 5 in Windows Presentation Foundation WPF fur WPF Windows Anwendungen entwickelt In WPF wird XAML verwendet weil dort Workflows wiederum mit XAML definiert werden konnen XAML dient auch in Silverlight Anwendungen und unter Windows 8 in auf der Windows Runtime basierenden Windows Store Apps dem Aufbau der grafischen Benutzeroberflache Extensible Application Markup LanguageDateiendung xamlMIME Type application xaml xmlEntwickelt von MicrosoftErstveroffentlichung Juli 2009Art User Interface Markup LanguageErweitert von XMLWebsite microsoft com Inhaltsverzeichnis 1 Ubersicht 2 Designer Entwickler Arbeitsfluss 3 XAML in Silverlight 4 XAML in der Windows Runtime 5 Aufbau amp Merkmale 5 1 Gliederung 5 2 XAML Namensraume 5 2 1 Silverlight 5 2 2 Windows Presentation Foundation 5 2 3 Windows Runtime 5 3 Verknupfung von GUI und Code 5 4 Styles und Templates 5 4 1 Beispiel Style 5 4 2 Beispiel Template 5 5 Transformationen und Animationen 5 6 Document Services 6 Vergleiche mit anderen XML basierten Programmier Sprachen 7 Siehe auch 8 Literatur 9 Weblinks 10 QuellenUbersicht BearbeitenXAML ist eine XML basierte Sprache die verwendet wird um grafische Elemente Benutzeroberflachen Verhaltensweisen Animationen Transformationen Darstellung von Farbverlaufen Abspielen von Mediadateien und vieles mehr zu definieren XAML wurde von Microsoft als die in der Windows Presentation Foundation einer Desktop orientierten Technologie zu verwendende Auszeichnungssprache eingefuhrt WPF stellt fur 2D und 3D Objekte den Einsatz von Rotationen Animationen und eine Reihe anderer Effekte und Funktionalitaten die von XAML gerendert werden XAML Elemente konnen direkt Common Language Runtime Objektinstanzen CLR abbilden wohingegen Attribute CLR Eigenschaften und Ereignisse auf diese Objekte abbilden konnen Bei einer ublichen Verwendung werden XAML Dateien von optisch orientierten Design und Entwicklerwerkzeugen wie Microsoft Expression Blend Microsoft Visual Studio XAML Pad oder dem Windows Workflow Foundation Visual Designer generiert Obwohl XAML als wesentlicher Teil der WPF eingefuhrt wurde ist der XAML Standard an sich nicht spezifisch mit der WPF oder NET verknupft Mit XAML kann man unter Verwendung jeder beliebigen anderen Programmierschnittstelle englisch application programming interface API Anwendungen entwickeln wobei XAML eine eigenstandige Sprache darstellt Der Hauptaspekt dieser Technologie ist die verringerte Komplexitat die Programme haben mussen um XAML zu verarbeiten weil es sich im Grunde um einfaches XML handelt Da XAML auf XML basiert konnen Entwickler und Designer gemeinsam Inhalte austauschen und bearbeiten da der Code erst zur Laufzeit kompiliert wird 1 2 Ebenso wie bei XML wird in XAML zwischen Gross und Kleinschreibung unterschieden Designer Entwickler Arbeitsfluss BearbeitenBei der Anwendungsentwicklung ist XAML sozusagen die gemeinsame Sprache zwischen Designer und Entwickler Der Grafiker gestaltet mit den Designertools die Benutzerschnittstelle und generiert XAML Code Der Entwickler greift diesen XAML Code auf und entwickelt in seiner Sprache der Wahl die Programmlogik dazu XAML Objekte die vom Designer angelegt wurden werden vom Entwickler mit programmlogischer Funktionalitat versehen Beide Designer und Entwickler konnen praktisch gleichzeitig am selben Projekt arbeiten und mussen nicht mehr uber Umwege miteinander kommunizieren In Silverlight und WPF Anwendungen wird diese Zusammenarbeit von Designer und Entwickler u a an der Verwendung von zwei unterschiedlichen Dateitypen fur Benutzerschnittstelle und Programmlogik deutlich die XAML Datei Dateierweiterung xaml die die hinterlegten grafischen XAML Beschreibungen enthalt und eine mit dieser Datei verbundene CodeBehind Datei die die Programmlogik fur die deklarativen XAML Objekte enthalt In NET sind die CodeBehind Dateien je nach Sprachwahl mit entsprechenden Dateiendungen versehen In C und Visual Basic sind es die Erweiterungen xaml cs bzw xaml vb in JavaScript heisst die Dateiendung xaml js 2 XAML in Silverlight BearbeitenIn Webanwendungen wird XAML hauptsachlich in Form von Silverlight eingesetzt Microsoft Silverlight ist eine veranderte im Umfang reduzierte Untermenge von WPF Wahrend der Entwicklung wurde es WPF E genannt was fur Windows Presentation Foundation Everywhere stand Microsoft Silverlight ermoglicht es WPF Anwendungen als Rich Internet Applications mit demselben oder minimal verandertem Programmcode online verfugbar zu machen ohne dass auf dem Clientcomputer das gesamte NET Framework installiert sein muss 3D Funktionen werden derzeit noch nicht unterstutzt aber XPS vektorbasierte Grafiken und Hardwarebeschleunigung demzufolge ist das Rendern von Rich User Interfaces fur Webseiten moglich Eine Vielfalt von Medien kann nun nahtlos in die neuen Oberflachen eingegliedert werden einschliesslich Audio Video und 2D Grafiken Wichtige grafische Gesichtspunkte durch XAML Beschreibung sind Automatisches Layout 2D Shape Elemente Rectangle Ellipse etc Farbverlaufe mit GradientBrushes Transformationen Skalieren Rotieren Scheren Matrizen Animationen DoubleAnimation ColorAnimation PointAnimation Abspielen von Mediendateien 1 XAML in der Windows Runtime BearbeitenBeginnend mit Windows 8 kommt XAML neben WPF fur Windows Store Apps die unter der neuen Windows Runtime ausgefuhrt werden zum Einsatz XAML in der Windows Runtime ist ebenso wie Microsoft Silverlight eine veranderte und im Umfang angepasste Untermenge der Windows Presentation Foundation Der Hauptunterschied zu den bisherigen Implementierungen besteht jedoch darin dass es sich hierbei um eine vollig neue auf nativem Code und COM basierende Schnittstelle handelt die uber sogenannte Projektionen fur mehrere Programmiersprachen darunter C C und Visual Basic direkt verwendbar ist Der Vorteil gegenuber WPF und Silverlight die beide auf der Common Language Runtime aufbauen ist eine gesteigerte Ausfuhrungsgeschwindigkeit da hier die Ubersetzung in den nativen Maschinencode des Prozessors zur Laufzeit Just in time Kompilierung entfallt Windows Store Apps werden derzeit immer als Vollbildanwendung ausgefuhrt und das vordefinierte Aussehen der Steuerelemente wurde fur eine Bedienung per Touch optimiert was sich in standardmassig grosseren und einfacher mit den Fingern zu bedienenden Elementen widerspiegelt Aufbau amp Merkmale BearbeitenGliederung Bearbeiten XAML Dateien sind hierarchisch strukturiert Ein oder mehrere Elemente konnen abhangig von ihrer Ordnung das Layout und Verhalten der Oberflache beeinflussen Jedes Element besitzt nur ein Elternelement englisch parent Jedes Element kann eine unbegrenzte Anzahl von Kindelementen englisch children besitzen nur bei einigen wenigen ist die Anzahl eingeschrankt z B besitzt die Scrollbar kein einziges Kind In allen XAML Anwendungen ist das Wurzelobjekt typischerweise ein Panel oder eines seiner sechs Unterarten das sich um Positionierung und Rendern jeglichen Inhaltes kummert Ein Panel kann wiederum mehrere andere Panels beinhalten Eigenschaften und Einstellungen z B einer Schaltflache werden wie bei XML bzw HTML im Tag als Attribute aufgefuhrt Wie jede XML Datei besitzt XAML ein Wurzel Tag Bei XAML nimmt man ein Vaterobjekt z B ein lt Window gt in das man weitere Kinder also Elemente einfugen kann Fur das Vaterobjekt muss das Wurzel Tag entsprechende Attribute xmlns und xmlns x besitzen die dem Parser Informationen liefern uber die zu verwendenden Namensraume XAML Namensraume Bearbeiten Silverlight Bearbeiten Wenn man in einer Silverlight Anwendung ein Element wie lt UserControl gt in XAML verwendet erkennt der Silverlight Parser dass man eine Instanz der UserControl Klasse erschaffen will Aber er erkennt nicht zwingend welche UserControl Klasse er verwenden soll Man muss also einen Weg finden eine Silverlight Namensrauminformation anzugeben um ein Element verwenden zu konnen lt UserControl x Class SilverlightApplication1 Page xmlns http schemas microsoft com client 2007 xmlns x http schemas microsoft com winfx 2006 xaml gt lt Grid x Name LayoutRoot Background White gt lt Grid gt lt UserControl gt http schemas microsoft com client 2007 ist der Kern des Silverlight 2 Namensraums Er umfasst alle Silverlight 2 Klassen einschliesslich UserControl und Grid Gewohnlich wird der Namensraum ohne ein Prafix deklariert somit wird er der Standard Namensraum fur das ganze Dokument Das bedeutet jedes Element wird automatisch in diesem Namensraum platziert bis man es anderweitig spezifiziert http schemas microsoft com winfx 2006 xaml ist der XAML Namensraum Er schliesst verschiedene XAML Merkmale ein die einem erlauben Einfluss darauf zu nehmen wie das Dokument interpretiert wird Dieser Namensraum ist an das Prafix X gebunden Das bedeutet man kann ihn geltend machen indem man das Namensraumprafix vor den Elementnamen schreibt z B lt x ElementName gt 3 Windows Presentation Foundation Bearbeiten In diesem Fall verwendet man nicht den Namensraum xmlns http schemas microsoft com client 2007 da keine Silverlight Anwendung angelegt wird sondern man verweist lediglich auf den Presentation Core der Windows Presentation Foundation xmlns http schemas microsoft com winfx 2006 xaml presentation 2 lt Window x Class WpfApplication1 Window1 xmlns http schemas microsoft com winfx 2006 xaml presentation xmlns x http schemas microsoft com winfx 2006 xaml Title Window1 Height 300 Width 300 gt lt Grid gt lt Grid gt lt Window gt Windows Runtime Bearbeiten Die fur Windows Store Apps unter Windows 8 verwendeten Namensraume entsprechen denen der Windows Presentation Foundation mit dem Unterschied dass als Standardelement fur Benutzeroberflachen Page anstatt Window verwendet wird und dieses sich auf die Implementierung in der Windows Runtime Windows UI Xaml bezieht Hohen und Breitenangaben entfallen ebenso da Windows Store Apps immer als Vollbildanwendung ausgefuhrt werden lt Page x Class HelloWorld BlankPage xmlns http schemas microsoft com winfx 2006 xaml presentation xmlns x http schemas microsoft com winfx 2006 xaml gt lt Grid gt lt Grid gt lt Page gt Verknupfung von GUI und Code Bearbeiten Um z B Schaltflachen mit einer Methode zu verknupfen schreibt man nun z B in Visual Basic oder C so genannte partial classes Sie teilen sich denselben Namensraum Der Compiler erstellt dann die notwendigen Verknupfungen Wenn man entgegen der klaren Empfehlung Oberflache und Code zu trennen doch Code im XAML Dokument unterbringen mochte kann man dies auch tun lt x Code gt leitet den entsprechenden Bereich ein Damit der Parser nun die entsprechenden Zeilen nicht auch noch interpretiert muss er unbedingt in lt CDATA gt eingeschlossen sein Beispiel aus msdn 4 lt Canvas xmlns gt lt Button Name button1 Click Clicked gt Click Me lt Button gt lt x Code gt lt CDATA void Clicked object sender RoutedEventArgs e button1 Content Hello World gt lt x Code gt lt Canvas gt Styles und Templates Bearbeiten In XAML ist es moglich die Oberflache sehr einfach an individuelle Bedurfnisse anzupassen Dies fangt bei den Eigenschaften von UI Elementen an welche man leicht mit Styles andern kann und geht weiter bis hin zur vollstandigen Kontrolle uber das Aussehen und Verhalten eines UI Elementes durch die Templates Beispiel Style Bearbeiten Innerhalb eines XAML Dokumentes definiert man sein eigenes Stylesheet fur eine Schaltflache lt Style def Name MyStyle gt lt Button Background Red FontSize 24 gt lt Style gt Beim Erstellen einer neuen Schaltflache verweist man dann nur noch auf sein selbst erstelltes Stylesheet lt Button Style MyStyle gt Styled lt Button gt Beispiel Template Bearbeiten Innerhalb eines XAML Dokumentes definiert man ein eigenes Control Template fur eine Schaltflache lt ControlTemplate x Key MyButtonTemplate TargetType x Type Button gt lt Border BorderBrush TemplateBinding BorderBrush BorderThickness TemplateBinding BorderThickness Background TemplateBinding Background gt lt Der ContentPresenter zeigt den Inhalt an welcher uber TemplateBinding abgerufen wird gt lt ContentPresenter Content TemplateBinding Content ContentTemplate TemplateBinding ContentTemplate Margin TemplateBinding Padding HorizontalAlignment TemplateBinding HorizontalContentAlignment VerticalAlignment TemplateBinding VerticalContentAlignment gt lt Border gt Transformationen und Animationen Bearbeiten XAML unterstutzt Transformationen wie sie bereits aus Flash oder SVG bekannt sind Bei den Animationen sieht es dagegen etwas anders aus Von Haus aus unterstutzt die XAML Syntax keine weit reichende Animation Um dies dennoch zu bewerkstelligen muss man die Mapping und xmlns Konstrukte verwenden um einen eigenen Namensraum spezifisch fur Windows Vista zu laden lt Mapping XmlNamespace animC ClrNamespace MSAvalon Windows Media Animation Assembly PresentationCore gt lt Mapping XmlNamespace animF ClrNamespace MSAvalon Windows Media Animation Assembly PresentationFramework gt Document Services Bearbeiten XAML bietet mehrere Merkmale die es ermoglichen Dokumente besser zu betrachten navigieren und paginieren Fur diesen Zweck stehen mehrere Kontrollleisten bereit die bei Bedarf aktiviert werden konnen Dazu gehort eine Seitenzahlanzeige Vor und Zuruck Schaltflache etc die der PageViewer anbietet Daruber hinaus kann man mit dem Document Layout Service Texte mit einfachen Tags versehen um jederzeit auf jedem Bildschirm ein angemessenes und leicht zu lesendes Layout zu installieren Vergleiche mit anderen XML basierten Programmier Sprachen BearbeitenDem deklarativen Konzept von XAML und der Vereinigung von XML codierten Objekten ahnlich arbeitet die Sprache LZX OpenLaszlo Hier werden die Methoden und Eigenschaften sowie die Ereignisbehandlung noch konsequenter in die Tag Struktur mit einbezogen Wahrend bei XAML der NET Compiler Oberflachen mit den Methoden bzw der Ereignisbehandlung zusammenbindet wird bei OpenLaszlo als Script Sprache JavaScript eingesetzt und eine lauffahige Adobe Flash Datei oder wahlweise DHTML erzeugt Codebeispiel vergleiche oben lt canvas debug true gt lt button name button1 text Click me gt lt handler name onclick gt parent button1 setAttribute text Hello World JavaScript Code lt handler gt lt button gt lt canvas gt Siehe auch BearbeitenXML User Interface Language XUL FXML Deklarative GUI Beschreibung fur JavaFXLiteratur BearbeitenMatthew MacDonald Pro WPF in C 2008 Springer 2008 ISBN 978 1 59059 955 6 Matthew MacDonald Pro Silverlight in C 2008 Apress 2008 ISBN 978 1 59059 949 5 M Werner und B Rieger Interaktive Webanwendungen mit Silverlight 2 entwickeln Data Becker 2008 ISBN 978 3 8158 3009 3Weblinks BearbeitenXAML in der MSDN Library XAML in der MSDN Library englisch Coverpages org englisch Artikel Papers und News zu XAMLAnleitungen Scriptol com englisch Anleitungen zu XAML Codeproject com englisch Anleitungen zu WPF und XAMLQuellen Bearbeiten a b www codeproject com Abgerufen am 15 Marz 2009 a b c M Werner und B Rieger Interaktive Webanwendungen mit Silverlight 2 entwickeln 2008 ISBN 978 3 8158 3009 3 Matthew MacDonald Pro Silverlight in C 2008 2008 ISBN 978 1 59059 949 5 CDATA Abschnitte Microsoft archiviert vom Original am 3 April 2015 abgerufen am 2 April 2019 Abgerufen von https de wikipedia org w index php title Extensible Application Markup Language amp oldid 239433561