Your SlideShare is downloading. ×
0
Thomas Claudius Huber | Trivadis AG
Alles was Sie über XAML wissen
müssen
Thomas Claudius Huber
 Principal Consultant @ Trivadis AG
 www.trivadis.com
 www.thomasclaudiushuber.com
 Trainer, Coa...
Sessioninhalt
 XAML Basics
 Elemente und Attribute
 Magie
 TypeConverter
 Markup Extensions
 …
XAML
 Steht für eXtensible Application Markup Language
 Eine XML-basierte Markup Sprache zum Instantiieren
von Objekten:...
Warum XAML?
Workflow mit XAML
DesignerEntwickler
Visual Studio Blend
XAM L
Sessioninhalt
 XAML Basics
 Elemente und Attribute
 Magie
 TypeConverter
 Markup Extensions
 …
Properties setzen
 Attribut-Syntax
 Property-Element-Syntax
 Implicit as content of element
<Button Content="OK"/>
<But...
Properties setzen
 Implizit als Inhalt des Elements
 Suche via ContentPropertyAttribute
 Attached-Property-Syntax
<Canv...
Klassen-Lookup
 Elemente werden über XML-Namespace zugeordnet
 XML-Namespace wird auf Assembly-Ebene
mehreren CLR-Namesp...
1:1-Namespace-Mapping
 Xmlns-Attribut mit Assembly
 CLR-Namespace und XAML in derselben Assembly:
 Objekte mit gewählte...
1:n-Namespace-Mapping
 XmlnsDefinitionAttribute auf Assembly nutzen
 XmlnsPrefix zum Vorschlagen eines Alias
 Ideal für...
Xmlns von XAML
 x-Alias
 Ist dem CLR-Namespace System.Windows.Markup
zugeordnet
 Enthält Compiler-Direktiven
 x:Class
...
Sessioninhalt
 XAML Basics
 Elemente und Attribute
 Magie
 TypeConverter
 Markup Extensions
 …
TypeConverter
 Margin-Property in XAML setzen
 Margin-Property in C#
 XAML wandelt den String «10» in ein Thickness-
Ob...
TypeConverter
 Thickness-Struct hat TypeConverterAttribute
 XAML-Parser sucht nach diesem Attribut
 ThicknessConverter ...
Markup Extensions
 Klassem zum Erweitern von XAML:
 Binding, StaticResource, …
 Attribut-Syntax: mit geschweiften Klamm...
XAML & Collections
 IList und IDictionary werden unterstützt
 Bei IList wird die Add-Methode aufgerufen
 Bei IDictionar...
XAML dynamisch laden
 XAML ist ein Serialisierungsformat
 Lesen via XamlReader
 Schreiben via XamlWriter
Demo
Sessioninhalt
 XAML Basics
 Elemente und Attribute
 Magie
 TypeConverter
 Markup Extensions
 …
Danke
Twitter: @thomasclaudiush
Homepage: www.thomasclaudiushuber.com
Mail: thomas.huber@trivadis.com
Slides/Demos:
www.th...
Upcoming SlideShare
Loading in...5
×

Alles was Sie über XAML wissen müssen

330

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: 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
330
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Alles was Sie über XAML wissen müssen"

  1. 1. Thomas Claudius Huber | Trivadis AG Alles was Sie über XAML wissen müssen
  2. 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. 3. Sessioninhalt  XAML Basics  Elemente und Attribute  Magie  TypeConverter  Markup Extensions  …
  4. 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. 5. Warum XAML?
  6. 6. Workflow mit XAML DesignerEntwickler Visual Studio Blend XAM L
  7. 7. Sessioninhalt  XAML Basics  Elemente und Attribute  Magie  TypeConverter  Markup Extensions  …
  8. 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. 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. 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. 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. 12. 1:n-Namespace-Mapping  XmlnsDefinitionAttribute auf Assembly nutzen  XmlnsPrefix zum Vorschlagen eines Alias  Ideal für Bibliotheken mit mehreren CLR-Namespaces
  13. 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. 14. Sessioninhalt  XAML Basics  Elemente und Attribute  Magie  TypeConverter  Markup Extensions  …
  15. 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. 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. 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. 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. 19. XAML dynamisch laden  XAML ist ein Serialisierungsformat  Lesen via XamlReader  Schreiben via XamlWriter Demo
  20. 20. Sessioninhalt  XAML Basics  Elemente und Attribute  Magie  TypeConverter  Markup Extensions  …
  21. 21. Danke Twitter: @thomasclaudiush Homepage: www.thomasclaudiushuber.com Mail: thomas.huber@trivadis.com Slides/Demos: www.thomasclaudiushuber.com/blog
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×