Chad A. Campbell, John Stockton
Microsoft Silverlight 2 im Einsatz
Inhaltsverzeichnis
6
Geleitwort
14
Vorwort
16
Danksagung
18
Über dieses Buch
20
1 Einführung
24
1.1 Ihr neues Leben mit Silverlight
24
1.1.1 Produktivität
25
1.1.2 Performance
26
1.1.3 Portabilität
26
1.2 Können wir nicht Freunde sein?
28
1.2.1 Die Sichtweise des Entwicklers
30
1.2.2 Die Sichtweise des Designers
30
1.3 XAML
31
1.3.1 Code-Behind
31
1.3.2 Namespaces
33
1.3.3 Compound Properties (komplexe Eigenschaften)
34
1.3.4 Attached Properties (angehängte Eigenschaften)
35
1.4 Mit Blend arbeiten
35
1.5 Zusammenfassung
44
2 In Harmonie mit dem Web
46
2.1 Beziehung zwischen Silverlight und dem HTML-DOM
46
2.1.1 Das HTML Document Object Model
48
2.1.2 Das Silverlight Plug-
48
2.1.3 Das Silverlight-Objektmodell
49
2.2 Erzeugen eines Silverlight Plug-ins
50
2.2.1 Die Silverlight Utility Datei: Silverlight.js
50
2.2.2 Erzeugen einer Instanz des Silverlight-Plug-in
52
2.3 Integration eines Silverlight-Plug-in
53
2.3.1 Beziehung zum HTML-DOM einrichten
54
2.3.2 Initialisieren der Anfangsbedingungen
56
2.3.3 Plug-in-Ereignisse behandeln
60
2.3.4 Initialisierungsparameter senden
62
2.4 Das Silverlight-Applikationsmodell
64
2.4.1 Die Manifestdatei
64
2.4.2 Die Silverlight-Applikation
65
2.4.3 Anwendungsabhängigkeiten
68
2.5 Interaktion mit dem HTML-DOM
69
2.5.1 Verwalten der Webseite mit managed Code
69
2.5.2 Arbeiten mit dem Browserfenster des Users
73
2.5.3 Die Brücke zwischen Skriptcode und managed Code
76
2.6 Zusammenfassung
80
3 Layout und Text
82
3.1 Ein Canvas für Ihre Vorstellungen
82
3.1.1 Den Inhalt eines Canvas anordnen
83
3.1.2 Die Vor- und Nachteile des Canvas
86
3.2 Das StackPanel: der Tiefstapler
87
3.3 Das leistungsfähige Grid
89
3.3.1 Anordnen des Grid-Inhalts
90
3.3.2 Abmessungen verändern
92
3.3.3 Arbeiten mit dem Grid per Programm
95
3.3.4 Anpassen der Zellenumrandungen
96
3.4 Anzeigen von Text
99
3.4.1 Font-Properties
100
3.4.2 Flusskontrolle (Flow control)
103
3.4.3 Texteigenschaften
104
3.4.4 Spacing von Text
106
3.5 UIElement und FrameworkElement
108
3.5.1 Eigenschaften
108
3.5.2 Methoden
113
3.6 Zusammenfassung
114
4 Behandlung von Nutzereingaben
116
4.1 Die Verwendung der Eingabegeräte
116
4.1.1 Die Tastatur
116
4.1.2 Fang die Maus!
120
4.2 Eingabe in Text-Controls
123
4.2.1 Behandlung von einfachem Text
123
4.2.2 Eingabe sensitiver Daten
126
4.3 Button-Controls
127
4.3.1 Der Button
128
4.3.2 Der HyperlinkButton
129
4.3.3 Der RadioButton
130
4.3.4 Die CheckBox
131
4.4 Das ItemsControl
132
4.4.1 Die ListBox
133
4.4.2 Die ComboBox
135
4.4.3 Das TabControl
136
4.5 Datums-Controls
138
4.5.1 Calendar
139
4.5.2 DatePicker
141
4.6 Auswahl aus einem numerischen Bereich
142
4.6.1 Verwendung der ProgressBar
142
4.6.2 Implementieren eines Schiebereglers
143
4.7 Anzeige von Dialogen
144
4.7.1 Das Popup-Control
144
4.7.2 Dateidialog
146
4.8 Sonstige Controls
148
4.8.1 Erzeugen eines Border-Elements
148
4.8.2 Verwendung des InkPresenters
149
4.9 Zusammenfassung
152
5 Datenbindung
154
5.1 Wie Sie Ihre Daten anbinden
154
5.1.1 Syntax der Datenbindung
155
5.1.2 Auswahl des Binding-Modus
157
5.2 Die Datenquelle verstehen
159
5.2.1 Binden an eine Eigenschaft
159
5.2.2 Binden an ein Objekt
161
5.2.3 Binden an eine Collection
162
5.3 Anpassen der Darstellung
163
5.3.1 Konvertieren von Werten während des Bindens
164
5.3.2 Erzeugen von Data-Templates
166
5.4 Das DataGrid
169
5.4.1 Anzeige Ihrer Daten
169
5.4.2 Editieren der Daten im Grid
175
5.4.3 Sortieren von Einträgen
176
5.5 Language Integrated Query (LINQ)
177
5.5.1 Einführung in LINQ
177
5.5.2 LINQ to Objects
180
5.5.3 LINQ to XML
182
5.5.4 Wir LINQen alles zusammen
185
5.6 Zusammenfassung
186
6 Netzwerk und Kommunikation
188
6.1 Vertrauen, Sicherheit und Browser-Beschränkungen
188
6.1.1 Nur eine Frage des Vertrauens
189
6.1.2 Machen Sie Ihre Applikation sicher!
192
6.1.3 Beschränkungen des Browsers
193
6.2 Verbinden mit Datenquellen
194
6.2.1 Verwendung von SOAP-Diensten
194
6.2.2 REST-Services
199
6.3 Die Daten aufbereiten
203
6.3.1 Lesen von POX
203
6.3.2 Konvertieren von JSON
207
6.3.3 Lesezugriff auf Syndicated-Feeds
209
6.4 Einsatz von erweiterten Diensten
215
6.4.1 WCF Service-Erweiterungen
216
6.4.2 WCF-Duplex-Dienste
217
6.4.3 Verbinden mit Sockets
221
6.5 Zusammenfassung
224
7 Digitale Medien
226
7.1 Audio und Video
226
7.1.1 Die Source-Eigenschaft
227
7.1.2 Gemeinsame Eigenschaften
230
7.1.3 Audio spezifisches
232
7.1.4 Video spezifisches
233
7.1.5 Der Lebenszyklus einer Medien-Datei
234
7.2 Playlisten für ein webbasiertes Mixtape
235
7.2.1 Clientseitige Playlisten
235
7.2.2 Verwendung von serverseitigen Playlisten
238
7.3 Interaktive Wiedergabe
239
7.3.1 Kontrolle des Wiedergabestatus
240
7.3.2 Zeitliche Interaktion
240
7.3.3 Vollbild-Modus
242
7.4 Zugriff auf geschützte Inhalte
243
7.4.1 Geschützte Inhalte anfordern
243
7.4.2 PlayReady-Komponenten abrufen
244
7.4.3 Geschützte Inhalte freischalten
244
7.5 Bilder anzeigen
245
7.5.1 Grundlagen
245
7.5.2 Deep-Zoom
246
7.6 Umgang mit freiem Platz
251
7.6.1 Die Stretch-Option None
252
7.6.2 Uniform-Sizing
253
7.6.3 Ausfüllen der Fläche
254
7.6.4 UniformToFill
254
7.7 Zusammenfassung
255
8 Grafikprogrammierung
256
8.1 Die Silverlight-Shapes
256
8.1.1 Eine Linie im Sand
257
8.1.2 Rectangle
257
8.1.3 Die Ellipse
259
8.1.4 Polyline
259
8.1.5 Polygon
259
8.2 Geometry
260
8.2.1 Einfache Geometrien
261
8.2.2 Path-Geometrien
262
8.2.3 Zusammengesetzte Geometrien
264
8.3 Pinsel (Brushes)
265
8.3.1 SolidColorBrush
265
8.3.2 LinearGradientBrush
266
8.3.3 RadialGradientBrush
268
8.3.4 ImageBrush
270
8.3.5 VideoBrush
271
8.4 Transformationen
272
8.4.1 RotateTransform
272
8.4.2 ScaleTransform
273
8.4.3 SkewTransform
273
8.4.4 TranslateTransform
274
8.4.5 TransformGroup
275
8.5 Grafikprogrammierung mit Blend
275
8.6 Zusammenfassung
284
9 Animationen
286
9.1 Animation: Es geht um Zeit
286
9.2 Die Timeline
287
9.2.1 Welche Eigenschaft will ich animieren?
288
9.2.2 Wo beginne ich und wohin soll es gehen?
290
9.2.3 Wie lange soll die Animation laufen?
292
9.3 Das Storyboard
296
9.3.1 Grundlegendes
296
9.3.2 Bestimmen des Ziels
297
9.3.3 Kontrollieren des Storyboards
299
9.3.4 Machen Sie es sich leicht
300
9.4 Key-Framing
303
9.4.1 Interpolation
305
9.4.2 Timing ist alles!
308
9.5 Zusammenfassung
309
10 Bring es in Form!
310
10.1 Ressourcen
310
10.1.1 Deklarative Ressourcen
310
10.1.2 Zugriff auf ungebundene Ressourcen
314
10.1.3 Ressourcen bündeln
316
10.2 Gib den Elementen ihre Form
318
10.2.1 Definieren der Optik
320
10.2.2 Zuordnen der Styles
322
10.3 Templates erzeugen
323
10.3.1 Control-Templates
323
10.3.2 Wiederverwertbare Templates
328
10.4 Visuelle Zustände
329
10.4.1 Wie funktionieren die Komponenten?
329
10.5 Der VisualStateManager
331
10.6 Teile deine Effekte
335
10.7 Zusammenfassung
337
11 Weitere Programmiertechniken
338
11.1 Daten im isolierten Speicher sichern
338
11.1.1 IsolatedStorageFile: Das virtuelle Dateisystem
339
11.1.2 Lesen/Schreiben von Dateien: Die Isolated Storage-Variante
345
11.1.3 Den isolierten Speicherbereich administrieren
347
11.2 Verwendung von XAML zur Laufzeit
347
11.3 Der BackgroundWorker
349
11.3.1 Die Arbeit verrichten
350
11.3.2 Die Oberfläche aktualisieren
351
11.4 Inhalte bei Bedarf abrufen
355
11.4.1 Inhalte abrufen
355
11.4.2 Verwalten größerer Download-Anforderungen
356
11.4.3 Laden der Inhalte
358
11.5 Die Dynamic Language Runtime (DLR)
365
11.5.1 Dynamische Typisierung
365
11.5.2 Metaprogrammierung
368
11.6 Zusammenfassung
370
12 Bereitstellen und Verteilen
372
12.1 Erzeugen eines User Controls
372
12.1.1 Definition des Erscheinungsbildes
373
12.1.2 Definieren des Verhaltens
374
12.1.3 Das Control aufrufen
377
12.2 Navigation in Silverlight-Anwendungen
378
12.2.1 Anpassen der Architektur
378
12.2.2 Einen Navigator implementieren
380
12.2.3 Navigieren zwischen den Seiten (alias UserControls)
381
12.3 Einen eigenen Splash-Screen erzeugen
382
12.3.1 Oberflächenentwurf
382
12.3.2 Verwendung des Splash-Screens
384
12.3.3 Den Ladevorgang überwachen
385
12.4 Hosten mit Silverlight-Streaming
385
12.4.1 Vorbereiten für das Streaming
386
12.4.2 Verpacken
386
12.4.3 Versende es!
388
12.4.4 Verwende es!
388
12.5 Zusammenfassung
389
Index
390
© 2009-2024 ciando GmbH