240 likes | 404 Views
Sponsoren. Softwaresponsoren. Mediasponsoren. WPF – mehr als bunte Buttons. Stefan Lange Stefan.Lange@empira.de. Agenda. 15 WPF-Konzepte die man kennen sollte Je 1 Konzept pro Slide plus Beispiel(e) Ziel des Vortrags: Was bietet WPF dem Software-Entwickler
E N D
Sponsoren Softwaresponsoren Mediasponsoren
WPF – mehralsbunte Buttons Stefan Lange Stefan.Lange@empira.de
Agenda • 15 WPF-Konzepte die man kennen sollte • Je 1 Konzept pro Slide plus Beispiel(e) • Ziel des Vortrags: • Was bietet WPF dem Software-Entwickler • Wie können die Konzepte genutzt werden
WPF (Windows Presentation Foundation) • Applikationen der nächsten Generation (Desktop oder Browser) • Übergreifendes Framework(als Teil von .NET 3.0) • Userinterface, Design, Visualisierung • Vektorgrafik, Text, Images, 3D-Grafik • Animation, Images, Video, Audio • Dokumente, Druck • Verbindet Design und Programmierung
XAML(Extensible Application Markup Language) • XML zur deklarativen Beschreibung der Oberfläche • Layout und Anbindung der Oberfläche getrennt von der Business-Logik • Von Design-Tools leicht handhabbar • Ermöglicht Zusammenarbeit von Designern und Entwicklern • XAML-Code kann stets auch in C# ausgedrückt werden
Content • UI-Elemente haben einen Content • Der Content kann beliebiges Objekt sein: • Text • Bild • Grafik • Oder daraus zusammengesetzt
Dependency-Properties • Werden wie .NET-Properties verwendet • Die Werte werden vom Framework selbst verwaltet • Weitreichende Konsequenzen: • Das Framework “kennt” alle Werte • Auf Änderungen kann sofort reagiert werden • Benachrichtigung über Änderungen möglich • Vererbung von Properties an Unterelemente • u.a. • Konzept z.B. auch in WF verwendet
Routed Events • Ausgelöst durch z.B. Benutzeraktionen • Event Preview (von außen nach innen) • Event Bubbling (von innen nach außen) • Verarbeitung jederzeit abbrechbar • Events sind Grundlage für Commands
Layout Panels • Canvas (absolute Position) • Grid (Tabellen Layout) • StackPanel (horizontal, vertical) • DockPanel (left, top, right, bottom, center) • WrapPanel (StackPanel mit Umbruch) • UniformGrid (Tabelle mit gleichgroßen Zellen) • ViewBox (stretch & scale) • etc...
Animation • Das Veränderung von Dependency-Properties über einen Zeitraum • Linear, diskret,... • Startzeit, Dauer, Wiederholung, Umkehrung, Ratio,... • Über 150 Animations-Klassen
Brushes • Diverse Brushes für Linien, Flächen, Text • SolidColorBrush, LinearGradientBrush, RadialGradientBrush, ImageBrush, DrawingBrush • VisualBrush • “Live-Abbild” eines beliebigen Visuals (Visual ist Basisklasse für allen visuellen Elemente)
Styles, Trigger & Templates • Styles: Weisen Properties andere Werte zu • Trigger: Definieren Bedingungen, wann Styles zugewiesen werden • Templates: Ersetzen einzelne Elemente durch andere • Skins: Geben einer Anwendung ihren eigenen Look • Themes: Passen die Anwendung an die Gegebenheiten der Plattform an
Data-Binding • Verbindet eine Target- und eine Source-Property • Ohne Code in XAML möglich • Target-Property muss Dependency-Property sein
Data-Validation • Prüfung der Eingaben über eine ValidationRule • Visualierung von Fehlerzuständen und Fehlermeldungen
Data-Templates • Visualisierung von Daten durch konfigurierte Items in Item-Controls (Listbox, ListView) • Ersetzung des Default-Templates durch individuelles Template • Alle WPF-Item-Controls sind über Data-Templates konfigurierbar
Control-Templates • Der Presenter des gesamten Controls wird durch Template ersetzt • Erlauben ein “Skinning” der Oberfläche
3D-Grafik • 3D-Geometries • Kameras, Lichtquellen, Animationen,... • Alles, was man für 3D-Grafik braucht
Textlayout & Fonts • Flowlayout für Fließtexte in UI • FixedPage für Dokumente • Verbessertes ClearType und Antialiasing • TrueType- und OpenType-Fonts(auch mit Postscript-Outlines) • Professionelle Textfunktionen(Kerning, Ligaturen, ...)
XPS (XML Paper Specification) • XAML-basierte Seitenbeschreibung • XPS ist ein Subset von WPF für FixedPage • Kann einfach in WPF-Anwendungen verarbeitet werden (Erzeugung, Anzeige, Druck) • Auch aus nicht WPF-Anwendungen erzeugbar (Dokument-Writer) • Alternatives Spoolformat (zu WMF)
Interportabiliät • WPF, WinForms, ActiveX-Controls lassen sich mischen • Praktisch für WPF-Projekte die bestehenden Code integrieren wollen • Tipp: unbedingt ausprobieren, Performance kann ggf. schlecht sein
Summary • Entwicklungzeiten kürzer als mit WinForms(Voraussetzung: man beherrscht WPF) • Dank Panels, Binding, Data-Templates uva. hervorragend auch für “ganz normale” Anwendugen geeignet • Größter Innovationsschritt seit der Einführung von Windows 1985 • Meine Empfehlung fürs nächste Projekt: WPF verwenden!
www.justcommunity.de www.dnug-koeln.de
Sponsoren Softwaresponsoren Mediasponsoren