Window Presentation Foundation



Ähnliche Dokumente
Window Presentation Foundation

Windows Presentation Foundation

Windows Presentation Foundation - WPF

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

XAML Extensible Application Markup Language. Manuel Naujoks (IB3)

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF. Übersicht. Komponenten & Frameworks Seite 1

Windows Presentation Foundation - Crashkurs

1 Einführung XAML und WPF Layout Steuerelemente Ereignisse und Kommandos Anwendungen Vorlagen 201.

Inhalt. Vorwort Das.NET Framework Das Programmiermodell der WPF Einführung in XAML... 45

Windows Presentation Foundation - Crashkurs

WPF Bindung. Dr. Beatrice Amrhein

GUI-Programmierung 2 - WPF

WINDOWS PRESENTATION FOUNDATION (WPF) Martin Kühn

WPF Steuerelemente. Dr. Beatrice Amrhein

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Inhaltsverzeichnis. Jörg Wegener. Windows Presentation Foundation - WPF. Grafische Benutzerschnittstellen mit.net 3.5

Von Windows-Forms zu WPF mit Expression Blend? Thomas Müller conplement AG Nürnberg

WPF: Viele bunte Smart Clients

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

Programmierung einer Windows Store App mit C# und XAML

WEBSEITEN ENTWICKELN MIT ASP.NET

Webseiten und Web-Apps grafisch gestalten mit HTML5 Canvas ohne Flash und sonstige Tools

Projekt Xaml Konverter

8a. Exkurs.NET. 8a.1.NET Architektur

Lokale Installation von DotNetNuke 4 ohne IIS

C# im Vergleich zu Java

Installation und Inbetriebnahme von Microsoft Visual C Express

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Jürgen Kotz Rouven Haban Simon Steckermeier. WCF, WPF und WF - Ein Überblick ADDISON-WESLEY. An imprint of Pearson Education

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Grundlagen von Python

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.

Buddy - Algorithmus Handbuch für Endnutzer Stand

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Einführung Internettechnologien. - Clientseitige Programmierung -

WPF. Windows Presentation Foundation. Sven Hubert Student Partner Microsoft Academic Program

Version 0.3. Installation von MinGW und Eclipse CDT

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Online-Publishing mit HTML und CSS für Einsteigerinnen

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Klausur GUI-Entwicklung WS10/11 1.Termin

Arbeiten mit UMLed und Delphi

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

SANDBOXIE konfigurieren

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Einführung in Eclipse und Java

Präsentation Von Laura Baake und Janina Schwemer

Zählen von Objekten einer bestimmten Klasse

Kurzanleitung. Nutzung des Online Office von 1&1. Zusammengestellt:

4D Server v12 64-bit Version BETA VERSION

GEONET Anleitung für Web-Autoren

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Informationen zur Verwendung von Visual Studio und cmake

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

GUI-Entwicklung 2: Windows Presentation Foundation

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

! " # $ " % & Nicki Wruck worldwidewruck

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

WPF 4.5 XAML UND .NET BIBLIOTHEK GRAFISCHE BENUTZEROBERFLÄCHEN FÜR WINDOWS INKL. ENTWICKLUNG VON WINDOWS STORE APPS. EXTRA: Mit kostenlosem E-Book

Erweiterungen Gantry Framework -

CLR CIL MCS ECMA-335. Linux.Ne t Albrecht Liebscher, Erlanger Linux Tage

Tutorium Rechnerorganisation

Viele Bilder auf der FA-Homepage

Einführung in die Cross-Plattform Entwicklung Responsive Webdesign mit dem Intel XDK

Installationsanleitung. Lohn Manager 9.5

Apollo Überblick. Klaus Kurz. Manager Business Development Adobe Systems Incorporated. All Rights Reserved.

Grundlagen der Informatik 2

Anleitung: Confixx auf virtuellem Server installieren

CGI Programmierung mit Ha. Markus Schwarz

GUI Programmierung in Java

Qt-Projekte mit Visual Studio 2005

Lizenzierung von Windows Server 2012

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Computeria Solothurn

Applications Applets (eingeschränkte Rechte)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

Interoperabilität mit Office-Anwendungen (1)

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden.

Web2Lead. Konfiguration

Transkript:

Window Presentation Foundation Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338 Inhalt Einführung WPF Layouts C# Sprache Dialog-Elemente, Menüs 2D- / 3D-Grafik, Audio, Video, Animation Routet Events, Dependency Properties, Command Textdarstellung (Flow-FixedDocuments) Datenbanken Navigation / Browser Eigene Komponenten 2 1

Überblick C# ist das Äquivalent zu Java, aber auch eine Weiterentwicklung der Sprache C/C++, keine Pointer, (".", "::" und "->") nun. Plattformunabhängig, eher im Sinne MS Desktop, PDA, Web.net Common language runtime (CLR), mit Garbage Collection Common language subset (CLS), gemeinsame Sprachbasis. Es kann jede Sprache verwendet werden. Standardvokabular (Menge von Befehlen) Microsoft intermediate language (MSIL), Zwischensprache Just in Time Compiler (JIT) Windows Forms (Swing) ASP.net (Web Services) ADO.net (Datenbanken) XML, SOAP, UDDI (Kommunikation zw. den Komponenten 3 Visual Studio, C# und.net Entwickler: Andreas Hejlsberg Heilsberg hatte Turbo Pascal und Delphi mit entwickelt Absprung nach Redmond Entwicklung des Programmpaket.net / C# Philosophie weitgehend identisch - Drag & Drop der GUI - Propertyfenster mit Property-Methoden kein normales get/set - Antwort auf Java, Plattform unabhängig - Sprache C# - Aktuelles Framework 4,5 - Common Language Runtime (CLR) - Unterschied: Übersetzung, kein Intepreter, - Übersetzen VOR oder während der Ausführung 4 2

Visual Studio, C# und.net Weitere Eigenschaften - Unterstützt viele Programmiersprachen (C#, VB, Delphi) - C#, VB, Delphi, C++ - Umwandlung in einem Zwischencode - Sehr viele GUI-Elemente, bis zu Listview / Grid - Datenbank-Anbindung - Web-Server - Delegates statt Funktionspointer - Operator Überladen, nicht in Java - Eigenschaften (readx, writex, get/set) - Alles Objekte, auch int und double - Anweisungen weitgehend identisch zu Java / C++ - keine Header-Dateien - statt implement verwendet man using - Mehr Datentypen, z. B. unsigned int - Arrays mittels Blockstruktur, anders als in Java 5 Visual Studio, C# und.net Datentypen in C# - byte vorzeichenlos, 0 bis 255 - sbyte vorzeichenbehaftet, -128 bis +127 - short vorzeichenbehaftet, -32768 bis +32767 - ushort vorzeichenlos, 0 bis 65535 - int vorzeichenbehaftet, -2.147.483.648 bis + 2.147.483.648 - uint vorzeichenlos, 0 bis 4.294,967,295 - long vorzeichenbehaftet -2 63 bis 2 63-1 - ulong vorzeichenlos 0 bis bis 2 64-1 - single 32 Bit Gleitkommazahl, 7 Stellen - double 64 Bit Gleitkommazahl, 16 Stellen - bool boolscher Wert - char Zeichen - decimal 96 Bit Dezimalwert - string readonly Zeichenfolge, neu erzeugen oder StringBuilder 6 3

Windows-Programmierung Windows 1,0 bis Windows 8,0 - ca. 4000 API-Funktionen - C-Funktionen - 150 Zeilen Hello World, pures API, 1985 - Wrapper-Klassen: MFC, Borlands Object Window Library, WinForms - Hello World nun eine Zeile - Die GUI-Elemente verwenden den Immediate Mode - Jedes Zeichnen hat eine unmittelbare Auswirkung auf die Darstellung - Das Betriebssystem, Windows, benachrichtigt die GUI-Elemente, wenn sie neu gezeichnet werden sollen - Jedes Element hat eine onpaint -Methode, siehe auch Java - Jedes Element kann nur in seinem Bereich zeichnen - Win 7: XP-Modus à la onpaint - Win 7: Normal-Modus: Transparente Darstellung, Kenntnis über andere UI 7 Windows-Programmierung Windows Presentation Foundation - Radikaler Umbruch, kein GDI, kein GDI+ - Verwendet über die Milcore.dll DirectX bzw. die Grafikkarte - WPF wurde in C# entwickelt, Milcore in C++ - Alle GUI-API-Funktionen werden umgangen - Trennung Code und Layout (C# und XAML) - Zeichnet sich selber - Button kann Elemente enthalten - viele Layout-Panels - Styles - Flexible Trigger (Routed-Events) - mächtige DataBinding - 2D- und 3D-Grafiken, Animationen, Audio und Video - Text und Dokumente (FlowDocument, Fixed-Document) - Browsertechnik, neue Navigation - Vectorbasierend 8 4

Windows-Programmierung MFC OWL Winforms GDI+ Grafikarte WPF DirectX Grafikarte WPF DirectX Grafikarte Milcore 9 WPF-Aufbau Presentation Framework.dll Presentation Core.dll Windows Base.dll Controls, Dokumente Layout, Data Binding Eigenschaftssystem Common Language Runtime (CLR) Media Integration Layer MilCore.dll C++ 2D, 3D, Video, Audio Effekte Animation DirectX 10 5

WindowsBase WindowsBase.dll - Enthält die Basislogik für Windows-Anwendungen, alles außer GUI - Ist in C# geschrieben - Bietet die grundlegenden Methoden (main, Event-Loop) - Bietet die Technik Dependency Properties - Bietet die Technik Routed Events - PresentationCore benutzt windowsbase.dll - PresentationFramework benutzt windowsbase.dll 11 Presentation Core PresentationCore.dll - Enthält die Verbindung Visual Tree auf.net und Composition Tree für milcore.dll - Visual Tree beeinhaltet alle GUI-Elemente des Fensters - Verwendet die Klasse Visual - Visual ist die Basisklasse aller WPF-UI-Elementen - Der Composition Tree ist die Analogie in Richtung DirectX - Der Composition Tree besteht aus mehr Elementen 12 6

Presentation Framework PresentationFramework.dll - Enthält alle WPF-GUI-Elemente - Controls, Dokumente, Layout-Panels, Benutzerführung, Animation - Audio, Bildern und Video-Klassen - Ist die Kern-DLL für Windows Presentation Foundation - Bietet also ein UI-Framework 13 MilCore (Media Integration Layer) Milcore.dll - Kapselt den Zugriff auf DirectX - Alle Darstellungen der WPF wurden hier programmiert - Entwickelt in native Code (C++) - Vektorbasierende Darstellung 14 7

Eigenschaften von WPF Zeichnet mit Hilfe von DirectX, volle Ausnutzung der Hardware Komplett neue Bibliothek, kein GDI Keine onpaint-methode, die Elemente zeichnen sich selber Vektor-, statt Rasterbasierende Elemente 2D- und 3D-Elemente Zwischenspeicher für Zeichnungsdaten Animationen, Audio, Video, z. B.: Video auf einem Würfel Neue Layout-Technik Klass. Desktop- oder Browserprogrammierung Neue GUI-Element-Techniken ListBox mit Schalter, Text, CheckBox Neue Möglichkeiten mit Flow- und Fixed-Documents Trennung Code und Layout (XAML) Einbau von Styles à la CSS und Templates Routed Events, Dependency Properties, Commands 15 Navigationsprogramm mit WPF Nur mit IExplorer lauffähig Mozilla PlugIn deaktiviert this.navigationservice.navigate(new Uri("SecondPage.xaml", UriKind.Relative)); 16 8

GUI-Elemente Date Controls: Calendar DatePicker Textcontrols: DocumentViewer Fließ- und festen Text InkCanvas TextBlock Label mit WordWrap TextTrimming (Word, Char) Kann Bilder enthalten TextBox(Base) PasswortBox RichtextBox 17 GUI-Elemente: ItemsControls Button RepeatButton System.Windows.Controls.Primitives; Kein PreviewMouseLeftButtonDown ToggleButton System.Windows.Controls.Primitives; CheckBox ComboBox DataGrid Label ListBox ListView Menu RadioButton StatusBar TreeView WebBrowser 18 9

GUI-Elemente RangeControls: ProgressBar Slider ScrollBar separater ScrollBar (Vertik, Horiz.) ScrollViewer Flächenelement mit Scrollbars 19 GUI-Elemente ContentControls: ContentControl à la div in HTML Expander aus HTML, AJAX Frame mit Navigation à Browser GroupBox Separator Splitter, à la Explorer SinglePageViewer à la TabControl mit Zoom TabControl 20 10

GUI-Elemente Sonstiges: HyperLink Image Shape Ellipse, Line, Path, Polygon, Polyline, Rectangle (meist in Canvas) Decorator Rand etc. Adorner Drag&Drop, Eingabevalidierung ToolTip WindowsFormsHost Ein Element, mit dem Sie ein Windows Forms-Steuerelement auf einer WPF-Seite hosten können. 21 Layout-Elemente (kein Anchor mehr vorhanden) Elemente: Canvas DockPanel Grid UniformGrid StackPanel ViewBox WrapPanel VirtualizingStackPanel DataGridCellsPanel Position mittels x/y, setlayout(null); andocken an Elemente, letzte Fill GridBagLayout in Java Grid in Java Orientation="Horizontal" Orientation= "Vertical" Ein Element, aber mit Zoom FlowLayout Scrolling sichtbarer Elemente (ListBox) Layout für DataGrid-Element 22 11

Layout-Elemente Hilfselemente: Border GridSplitter Rand Ändern der Breite einer Zelle 23 XAMLPad Express: Link auf meiner Homepage Doppelklick: SdkXamlBrowser.csproj 24 12

WPF und XAML Winforms: Zwei partial Klassen: form1.cs, form.designer.cs WPF: Eine Klasse: form1.cs Eine XAML-Datei form.xaml (optional) XAML als deklarative Programmiersprache Definieren, was gemacht wird. Nicht wie XAML Alle Elemente werden in einem Baum dargestellt (DOM) à la XHTML Mit Attributen 25 XAML: 1. Beispiel, Visual Tree <Window x:class="bsp1.mainwindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title= 1. Beispiel" Height="224" Width="525" Margin="1,25,1,1" > <StackPanel Height="175" HorizontalAlignment="Left" Margin="10,10,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="465"> <Label Content="Label" Height="31" Name="label1" Width="400" /> <TextBox Height="24" Name="textBox1" Width="400" /> <Button Content="Button" Height="37" Name="button1" Width="400" Margin="0,50,0,0" Click="button1_Click" /> </StackPanel> </Window> Margin: Left, Top, Right, Bottom 26 13

27 XAML: 1. Beispiel, Visual Tree Leerer Rumpf: <Window x:class="bsp1.mainwindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> </Grid> </Window> 28 14

XAML: Beispiel Eingabe eines Textes Ausgabe des Textes 29 XAML und Attribute <Typname Attribut="Value" />: Ersetzt durch <Typname> <Typname.Attribut> Value </Typname.Attribut> </Typname> 30 15

XAML: Attribute mit Typkonvertierung <Grid Margin="10,20,30,40" /> Ersetzt durch <Grid> <Grid.Margin> <Thickness Left="10" Top="20" Right="30" Bottom="40"/> </Grid.Margin> </Grid> Vereinfachung muss man in eigene Klassen einbauen Get und set-methoden werden weitergeleitet 31 XAML: Markup Extension Anbindung an eine Datenbank Die Attribute erhalten eine Referenz auf ein beliebiges Objekt <TextBlock Text="{Binding Path=Name}" /> Beispiel <DataGridTextColumn x:name="idcolumn" Binding="{Binding Path=ID}" Header="ID" Width="*" IsReadOnly="True" /> <DataGridTextColumn x:name="namecolumn" Binding="{Binding Path=Lastname}" Header="Lastname" Width="3*" /> 32 16

XAML: Markup Extension 33 C# Sprache: Literatur und Links Softwareentwicklung mit C# Hanspeter Mössenböck dpunkt.verlag ISBN 3-89864-406-5 Visual C+ 2005 Günter Born, Benjamin Born Entwickler.press ISBN 978-3-939084-40-2 http://www.guidetocsharp.de http://msdn.microsoft.com/de-de/library/kx37x362.aspx 34 17

WPF: Literatur WPF und XAML Rainer Stropek, Karin Huber entwickler.press ISBN 978-3-939084-60-0 Windows Presentation Foundation Thomas Claudius Huber Galileo Computing ISBN 978-3-8362-1538-1 Windows Presentation Foundation Adam Nathan SAMS-Verlag ISBN 0-672-32891-7 35 18