Your SlideShare is downloading. ×
Alles was Sie über XAML wissen müssen
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Alles was Sie über XAML wissen müssen

301

Published on

XAML ist mittlerweile auf jeder Microsoft-Plattform verfügbar: WPF, Windows-Store-Apps, Windows Phone und Silverlight. In dieser Session lernen Sie die zentralen Möglichkeiten von XAML kennen: …

XAML ist mittlerweile auf jeder Microsoft-Plattform verfügbar: WPF, Windows-Store-Apps, Windows Phone und Silverlight. In dieser Session lernen Sie die zentralen Möglichkeiten von XAML kennen: Attribute und Elemente, Namespace Mappings, Type Converter, Markup Extensions und vieles mehr.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
301
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Thomas Claudius Huber | Trivadis AG Alles was Sie über XAML wissen müssen
  • 2. Thomas Claudius Huber  Principal Consultant @ Trivadis AG  www.trivadis.com  www.thomasclaudiushuber.com  Trainer, Coach, Developer, Architect  Spezialisiert auf WPF, XAML, WinApps  Autor der umfassenden Handbücher zu WPF, Silverlight und Windows Store Apps
  • 3. Sessioninhalt  XAML Basics  Elemente und Attribute  Magie  TypeConverter  Markup Extensions  …
  • 4. XAML  Steht für eXtensible Application Markup Language  Eine XML-basierte Markup Sprache zum Instantiieren von Objekten:  Wurde sogar als Serialisierungsformat erstellt  WPF nutzt XAML als UI-Beschreibungssprache
  • 5. Warum XAML?
  • 6. Workflow mit XAML DesignerEntwickler Visual Studio Blend XAM L
  • 7. Sessioninhalt  XAML Basics  Elemente und Attribute  Magie  TypeConverter  Markup Extensions  …
  • 8. Properties setzen  Attribut-Syntax  Property-Element-Syntax  Implicit as content of element <Button Content="OK"/> <Button> <Button.Content> OK </Button.Content> </Button> <Button> OK </Button> Demo
  • 9. Properties setzen  Implizit als Inhalt des Elements  Suche via ContentPropertyAttribute  Attached-Property-Syntax <Canvas Width="300" Height="200"> <TextBox Canvas.Left="50" Canvas.Top="20" Text="Welcome"/> </Canvas> <Button> OK </Button> [ContentPropertyAttribute(„Content")] public class ContentControl:Control{...} Demo
  • 10. Klassen-Lookup  Elemente werden über XML-Namespace zugeordnet  XML-Namespace wird auf Assembly-Ebene mehreren CLR-Namespaces zugeordnet  Zuordnung findet via XmlnsDefinitionAttribute statt <Window x:Class="WpfApplication4.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" .../> Demo
  • 11. 1:1-Namespace-Mapping  Xmlns-Attribut mit Assembly  CLR-Namespace und XAML in derselben Assembly:  Objekte mit gewähltem Alias instantiieren xmlns:alias ="clr-namespace:yourCLRNamespace;assembly=yourAssembly" xmlns:alias ="clr-namespace:yourCLRNamespace" <alias:YourClass/>
  • 12. 1:n-Namespace-Mapping  XmlnsDefinitionAttribute auf Assembly nutzen  XmlnsPrefix zum Vorschlagen eines Alias  Ideal für Bibliotheken mit mehreren CLR-Namespaces
  • 13. Xmlns von XAML  x-Alias  Ist dem CLR-Namespace System.Windows.Markup zugeordnet  Enthält Compiler-Direktiven  x:Class  k:Key  x:Code  x:Name xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  • 14. Sessioninhalt  XAML Basics  Elemente und Attribute  Magie  TypeConverter  Markup Extensions  …
  • 15. TypeConverter  Margin-Property in XAML setzen  Margin-Property in C#  XAML wandelt den String «10» in ein Thickness- Objekt um <Button Margin="10" Content="Book TVD-course"/> Button btn = new Button(); btn.Margin = new Thickness(10); btn.Content = "Book TVD-course";
  • 16. TypeConverter  Thickness-Struct hat TypeConverterAttribute  XAML-Parser sucht nach diesem Attribut  ThicknessConverter wird instanstiiert und konvertiert String zu Thickness-Objekt  Eigene TypeConverter von TypeConverter ableiten [TypeConverterAttribute(typeof(ThicknessConverter))] public struct Thickness:IEquatable<Thickness>{...} Demo
  • 17. Markup Extensions  Klassem zum Erweitern von XAML:  Binding, StaticResource, …  Attribut-Syntax: mit geschweiften Klammern  Alternativ zur Attribut-Syntax auch als Objektelement <Slider x:Name="sli"/> <Button Content="{Binding Path=Value, ElementName=sli}"/> <Slider x:Name="sli"/> <Button> <Binding Path="Value" ElementName="sli"/> </Button> Demo
  • 18. XAML & Collections  IList und IDictionary werden unterstützt  Bei IList wird die Add-Methode aufgerufen  Bei IDictionary wird das x:Key-Attribut genutzt  XAML  C# <ResourceDictionary> <SolidColorBrush x:Key="redBrush" Color="Red"/> </ResourceDictionary> ResourceDictionary dictionary = new ResourceDictionary(); SolidColorBrush brush = new SolidColorBrush(); brush.Color = Colors.Red; dictionary.Add("redBrush", brush); Demo
  • 19. XAML dynamisch laden  XAML ist ein Serialisierungsformat  Lesen via XamlReader  Schreiben via XamlWriter Demo
  • 20. Sessioninhalt  XAML Basics  Elemente und Attribute  Magie  TypeConverter  Markup Extensions  …
  • 21. Danke Twitter: @thomasclaudiush Homepage: www.thomasclaudiushuber.com Mail: thomas.huber@trivadis.com Slides/Demos: www.thomasclaudiushuber.com/blog

×