34

Windows Store Apps entwickeln mit C# und XAML – · PDF fileInhaltsverzeichnis 1 Einführung

Embed Size (px)

Citation preview

Inhaltsverzeichnis

1 Einführung ........................................................................................................................................ 13 Was Sie benötigen, um mit diesem Buch zu arbeiten...................................................................... 14 Beispieldateien zu diesem Buch.......................................................................................................... 14 Korrekturen und Kommentare........................................................................................................... 14 Willkommen in der neuen Windows-Welt!...................................................................................... 15 Die Microsoft Design-Guidelines für Windows Store-Apps .......................................................... 19

Nutzen des Microsoft-Designstils............................................................................................... 19 Die Oberfläche sollte schnell und dynamisch sein ................................................................... 21 Unterstützung mehrerer Darstellungsformen .......................................................................... 22 Verwendung von Contracts......................................................................................................... 24 Interaktivität durch Live Tiles ..................................................................................................... 25 Daten werden mit der Cloud synchronisiert............................................................................. 25

Die Windows Runtime......................................................................................................................... 26 Projektion und Metadaten ........................................................................................................... 27 Projektion von .NET-Sprachen................................................................................................... 29 App-Isolation und Systemzugriff................................................................................................ 29 Das .NET-Profil für Windows Store-Apps................................................................................ 31

Apps mit Visual Studio entwickeln .................................................................................................... 31 Die Visual Studio-Projektvorlagen ............................................................................................. 31 Der Aufbau eines App-Projekts .................................................................................................. 33 Apps testen ..................................................................................................................................... 36

2 Anatomie einer Windows Store-App............................................................................................ 39 Die Rolle der Application-Klasse ....................................................................................................... 41 Zugriff auf das Fenster......................................................................................................................... 42

Die Klasse Window....................................................................................................................... 42 Die Klasse CoreWindow .............................................................................................................. 42

Navigation mit der Klasse Frame steuern ......................................................................................... 43 Übergabeparameter auf der Zielseite auswerten....................................................................... 44 Navigation abbrechen................................................................................................................... 45 Historie ermitteln und zuweisen................................................................................................. 45 Navigation auf Seitenebene.......................................................................................................... 46 Page Caching.................................................................................................................................. 48

Das Laufzeitverhalten einer App ........................................................................................................ 48 Auf den Suspension-Modus reagieren ....................................................................................... 50 Speichern des aktuellen Zustands ............................................................................................... 50 Wiederherstellen des gespeicherten Zustands .......................................................................... 51

6 Inhaltsverzeichnis

Capabilities ........................................................................................................................................... 53 Capabilities konfigurieren ........................................................................................................... 53 Capabilities in einer App verwenden......................................................................................... 55

App Contracts ...................................................................................................................................... 57 Die App als Quelle eines Contracts ............................................................................................ 58 Die App als Ziel eines Contracts................................................................................................. 61

3 XAML: Die Extensible Application Markup Language............................................................... 65 Das XAML-Objektmapping ............................................................................................................... 66 XAML-Namespaces............................................................................................................................. 67 Property Elements ............................................................................................................................... 68 Content Properties............................................................................................................................... 68 Attached Property-Syntax................................................................................................................... 69 XAML Markup Extensions................................................................................................................. 70 Das Programmiermodell von XAML-basierten Apps .................................................................... 70

Dependency Properties ................................................................................................................ 71 Routed Events................................................................................................................................ 71 Das Klassenmodell von XAML................................................................................................... 71

4 Ressourcen und Styles..................................................................................................................... 75 Zugriff auf physische Ressourcen...................................................................................................... 76

Umgang mit physischen Ressourcen ......................................................................................... 76 Ressourcen per XAML referenzieren......................................................................................... 77 Ressourcen per Code referenzieren............................................................................................ 78 Bilder in unterschiedlichen Formaten bereitstellen................................................................. 79 Bilder, die jede App enthalten sollte........................................................................................... 81

Logische Ressourcen............................................................................................................................ 82 Eine Ressource deklarieren.......................................................................................................... 83 Theme Dictionaries ...................................................................................................................... 84 Eigene Typen als Ressource hinterlegen.................................................................................... 87 Auf Ressourcen per Code zugreifen........................................................................................... 87

Wiederverwendbare Anpassungen mit Styles.................................................................................. 88 Einen Style definieren .................................................................................................................. 88 Einen impliziten Style anlegen.................................................................................................... 89 Einen Style vererben..................................................................................................................... 89

5 Das Layout der Oberfläche bestimmen ....................................................................................... 91 Automatisches Layout mit Layoutcontainern .................................................................................. 92

Elemente stapeln mit dem StackPanel ....................................................................................... 92 Tabellenlayout mit dem Grid-Container .................................................................................. 93 Automatisches Layout mit VariableSizedWrapGrid ............................................................... 97 Pixelbasiertes Layout mit Canvas ............................................................................................... 99

Inhaltsverzeichnis 7

Elemente skalieren mit der Viewbox.......................................................................................... 101 Automatisches Scrollen mit ScrollViewer ................................................................................. 102

Das Layout von Elementen steuern ................................................................................................... 105 Die Sichtbarkeit steuern ............................................................................................................... 106 Höhe und Breite festlegen ............................................................................................................ 107 Die Ausrichtung festlegen............................................................................................................ 109

6 Präsentation und Interaktion mit Controls ................................................................................. 111 Grundlegende Eigenschaften von Controls ...................................................................................... 112

Schaltflächen und Regler .............................................................................................................. 114 Textanzeigesteuerelemente .......................................................................................................... 116 Texteingaben.................................................................................................................................. 119 Listensteuerelemente .................................................................................................................... 123 Multimedia-Controls .................................................................................................................... 134 ProgressBar und ProgressRing .................................................................................................... 139 Application Bars ............................................................................................................................ 140

7 Control Templates und 2D-Grafik................................................................................................. 145 Ein Control Template erstellen ........................................................................................................... 146

Template mit Bindungen versehen............................................................................................. 147 Die Rolle der Klasse ContentPresenter ...................................................................................... 148 Das Standard-Template extrahieren........................................................................................... 149

Einfache 2D-Objekte zeichnen........................................................................................................... 150 Shapes.............................................................................................................................................. 150 Brushes............................................................................................................................................ 151

8 Elemente animieren und transformieren .................................................................................... 153 Mehr Interaktivität mit Animationen................................................................................................ 154

Benutzerdefinierte Animationen ................................................................................................ 154 Theme-Animationen .................................................................................................................... 159 Transition-Animationen.............................................................................................................. 160

Oberflächenelemente transformieren................................................................................................ 161 Elemente transformieren.............................................................................................................. 162 3D-Effekte mit Projektionen realisieren .................................................................................... 165

9 Daten an die Oberfläche binden .................................................................................................. 171 Objektbindungen.................................................................................................................................. 172

Eine Bindung in XAML herstellen.............................................................................................. 173 XAML-Elemente miteinander verbinden.................................................................................. 173 Bindungspfad definieren .............................................................................................................. 174 Eine Bindung per Code herstellen und ermitteln ..................................................................... 175 Objektdatenquelle zuweisen ........................................................................................................ 175 Eine Datenquelle in XAML definieren....................................................................................... 176

8 Inhaltsverzeichnis

Implizite Datenquellen................................................................................................................. 176 Synchronisation steuern .............................................................................................................. 178 Unterstützung für Synchronisation in der Datenquelle bereitstellen ................................... 178 Werte zwischen Quelle und Ziel konvertieren ......................................................................... 181 Enumerationswerte binden ......................................................................................................... 185

Listenbindungen .................................................................................................................................. 186 Listendarstellung mit Data Templates anpassen...................................................................... 188 Dynamische Template-Zuweisung............................................................................................. 189

Umgang mit ComboBox-Controls .................................................................................................... 192 Hierarchische Objekte binden .................................................................................................... 192 Flache Datenquellen binden........................................................................................................ 194 Synchronisation von Listenquellen ermöglichen..................................................................... 196

Listensteuerung mit ICollectionView und CollectionViewSource ............................................... 197 Das selektierte Element ermitteln............................................................................................... 197 In Listen navigieren ...................................................................................................................... 197 Auf Änderungen in der Listenselektion reagieren ................................................................... 198 Gruppierte Listen.......................................................................................................................... 199 Semantic Zoom unterstützen...................................................................................................... 201 Semantic Zoom steuern ............................................................................................................... 206

10 Techniken der App-Entwicklung.................................................................................................... 207 Umgang mit Zuständen ...................................................................................................................... 208

Aktuellen Zustand ermitteln ....................................................................................................... 210 Zustände steuern mit dem VisualStateManager ...................................................................... 211 Zustände per Code steuern.......................................................................................................... 212 Zustände mit Expression Blend definieren ............................................................................... 212 Visual Studio-Vorlagen verwenden ........................................................................................... 215

Oberflächen mit User- und Custom Controls kapseln ................................................................... 215 Dependency Properties ................................................................................................................ 216 Eine Dependency Property definieren....................................................................................... 216 Eine Attached Property erstellen ................................................................................................ 218 User Controls ................................................................................................................................ 218

Umgang mit Systemdialogen.............................................................................................................. 221 Nachrichten mit MessageDialog anzeigen ................................................................................ 222 Dateien öffnen mit dem FileOpenPicker................................................................................... 224 Verzeichnis auswählen mit dem FolderPicker ......................................................................... 226 Dateien speichern mit dem FileSavePicker ............................................................................... 227 Kontakte auswählen mit ContactPicker .................................................................................... 228

Arbeiten mit der Zwischenablage ...................................................................................................... 229 Inhalte in die Zwischenablage übertragen................................................................................. 230 Inhalte aus der Zwischenablage ermitteln................................................................................. 231 Bilder kopieren und einfügen ..................................................................................................... 231 Umgang mit Dateilisten............................................................................................................... 232

Inhaltsverzeichnis 9

Eigene Formate definieren........................................................................................................... 234 Verweise in der Zwischenablage hinterlegen ............................................................................ 234

Lokalisierte Apps erstellen................................................................................................................... 235 Lokalisierte Zeichenketten bereitstellen und binden ............................................................... 235 Auf lokalisierte Ressourcen zugreifen ........................................................................................ 237 Umgang mit sprachabhängigen Bildern .................................................................................... 237

Das MVVM-Pattern............................................................................................................................. 239 Technische Umsetzung ................................................................................................................ 241 Eine Basisklasse für Model und ViewModel erstellen.............................................................. 243 Interaktionslogik weiterleiten: die Klasse DelegateCommand .............................................. 244 Umgang mit Visual States ............................................................................................................ 246

Eine Windows Runtime-Komponente mit .NET erstellen ............................................................. 248 Konventionen für das Design...................................................................................................... 250 Regeln für den Zertifizierungsprozess........................................................................................ 251

11 Noch mehr Interaktivität mit Kacheln und Benachrichtigungen............................................ 253 Eine Kachel bereitstellen ..................................................................................................................... 254 Die Kachel mit Leben füllen ............................................................................................................... 255

Eine Vorlage auswählen ............................................................................................................... 257 Bilder definieren ............................................................................................................................ 261 Aktualisierungen steuern ............................................................................................................. 262 Einen Zeitplan für Aktualisierungen festlegen.......................................................................... 263

Kacheln über einen Server aktualisieren........................................................................................... 263 Einen Service für Benachrichtigungen bereitstellen................................................................. 264 Eine Liste von Benachrichtigungsquellen angeben .................................................................. 265

Push-Benachrichtigungen vom Server versenden........................................................................... 266 Zugriff vom Client......................................................................................................................... 267 Push-Benachrichtigungen vom Server versenden.................................................................... 268 Regeln für die Nutzung................................................................................................................. 270

Statusinformationen über Badges anzeigen...................................................................................... 270 Benachrichtigungen erstellen ...................................................................................................... 271 Badge auf Kachel platzieren......................................................................................................... 272

Secondary Tiles..................................................................................................................................... 272 Nachrichten auf dem Lock Screen anzeigen.............................................................................. 274 Secondary Tiles mit Inhalt füllen ................................................................................................ 276 Secondary Tile finden und entfernen ......................................................................................... 277

Benachrichtigungen mit Toasts .......................................................................................................... 277 Toasts erstellen .............................................................................................................................. 278 Anzeigedauer steuern ................................................................................................................... 280 Auf Ein- und Ausblenden sowie auf Fehler reagieren ............................................................. 281 Toast mit Sound ausstatten.......................................................................................................... 281 Startparameter festlegen............................................................................................................... 283 Zeitgesteuerte Toasts..................................................................................................................... 283

10 Inhaltsverzeichnis

12 Zugriff auf das Dateisystem ........................................................................................................... 285 Anwendungsverzeichnisse.................................................................................................................. 286

Das Installationsverzeichnis ........................................................................................................ 286 Das App-Datenverzeichnis.......................................................................................................... 286 Das Download-Verzeichnis......................................................................................................... 287 Zugriff auf zusätzliche Verzeichnisse......................................................................................... 287

Dateiauswahl durch den Anwender .................................................................................................. 289 Dateien öffnen...................................................................................................................................... 290 Dateien speichern ................................................................................................................................ 291 Umgang mit Anwendungseinstellungen........................................................................................... 292

Einstellungen laden und speichern ............................................................................................ 294 Einstellungen gruppieren............................................................................................................. 294 Einstellungen löschen................................................................................................................... 295 Umgang mit Roaming-Daten ..................................................................................................... 295 Zusammenhängende Einstellungen speichern......................................................................... 298 Auf Änderungen von Einstellungen reagieren ......................................................................... 298 Einstellungen versionieren .......................................................................................................... 299 Einstellungen visualisieren .......................................................................................................... 300

13 Kommunikation mit Services ......................................................................................................... 307 Erforderliche Capabilities prüfen ...................................................................................................... 308 Netzwerkinformationen analysieren ................................................................................................. 309 Daten über HTTP übertragen............................................................................................................ 310 Daten im Hintergrund transferieren................................................................................................. 312

Eine Datei im Hintergrund herunterladen................................................................................ 313 Den Fortschritt überwachen ....................................................................................................... 313 Download pausieren, fortsetzen und abbrechen...................................................................... 314 Downloads nach Neustart wiederaufnehmen .......................................................................... 316 Die Kommunikation konfigurieren ........................................................................................... 316

Kommunikation mit Webservices ..................................................................................................... 317 Zugriff auf REST-basierte Services............................................................................................. 317 Zugriff auf SOAP-basierte Services ............................................................................................ 322

Weitere Möglichkeiten ........................................................................................................................ 324

14 Apps verteilen und veröffentlichen............................................................................................... 325 Anatomie eines App-Pakets................................................................................................................ 326 Ein App-Paket erstellen....................................................................................................................... 327 Apps manuell auf anderen Geräten installieren .............................................................................. 330 Apps zertifizieren................................................................................................................................. 332

Nützlichkeit der App prüfen ....................................................................................................... 332 Umgang mit Werbung ................................................................................................................. 333 Verhaltensweise der App ............................................................................................................. 333 Kontrolle des Kunden gewährleisten ......................................................................................... 334 Inhalts- oder Altersbeschränkungen beachten......................................................................... 335

Inhaltsverzeichnis 11

App sinnvoll beschreiben............................................................................................................. 336 Tipps für den Zertifizierungsprozess.......................................................................................... 337 Apps lokal verifizieren.................................................................................................................. 338

Apps im Store veröffentlichen ............................................................................................................ 342 Ein Entwicklerkonto eröffnen ..................................................................................................... 342 Eine App im Dashboard anlegen ................................................................................................ 346 App-Namen mit lokalem Projekt verknüpfen .......................................................................... 354 App-Paket erstellen und hochladen............................................................................................ 358 App-Beschreibung und Screenshots hinterlegen...................................................................... 360 App zur Zertifizierung einreichen .............................................................................................. 364

In-App-Verkäufe................................................................................................................................... 365 In-App-Verkäufe implementieren.............................................................................................. 366 Lizenzinformationen abrufen...................................................................................................... 367 Lizenzen für einzelne Features prüfen........................................................................................ 369 Lizenzen erwerben ........................................................................................................................ 370 Belege anfordern und prüfen....................................................................................................... 371 Auf Lizenzänderungen reagieren ................................................................................................ 372

Trial- und zeitlich limitierte Versionen der App bereitstellen ........................................................ 373 Auf Trial-Version prüfen ............................................................................................................. 373 Trial-Version zur Entwicklungszeit testen ................................................................................ 374 Vollversion aus der App heraus erwerben................................................................................. 375

Mit Werbung Geld verdienen ............................................................................................................. 375

Stichwortverzeichnis................................................................................................................................. 377

39

Kapitel 2

Anatomie einer Windows Store-App

In diesem Kapitel: Die Rolle der Application-Klasse 41 Zugriff auf das Fenster 42 Navigation mit der Klasse Frame steuern 43 Das Laufzeitverhalten einer App 48 Capabilities 53 App Contracts 57

40 Kapitel 2: Anatomie einer Windows Store-App

Eine Windows 8 App wird durch die Klasse Application repräsentiert. Sie kümmert sich um die Kommuni-kation mit dem Betriebssystem und die Verwaltung des Lebenszyklus. Zudem ist sie mit einer einzelnen Window-Instanz verknüpft, die wiederum für die Darstellung der Oberfläche verantwortlich ist. Die eigentliche Oberfläche wird hingegen durch Page-Objekte repräsentiert. Die Darstellung mehrerer paralleler Fenster ist hierbei nicht möglich. Stattdessen findet eine Navigation zwischen den einzelnen Page-Instanzen statt. Diese werden von einem umschließenden Frame-Objekt verwaltet, welches sich auch um die Navigation zwischen den Seiten kümmert. Abbildung 2.1 illustriert die beschriebene Aufteilung.

Abbildung 2.1 Die Bestandteile einer Windows-App

Wie Sie sehen, existiert pro App jeweils nur eine Frame-Instanz, die mit einem Window-Objekt verbunden ist. Dieses übernimmt hierbei die Low-Level-Kommunikation mit dem Betriebssystem und kümmert sich um die Bereitstellung der gesamten Oberfläche. Schauen Sie sich zum besseren Verständnis einmal das folgende Codefragment aus der Datei App.cs an, die in jedem App-Projekt enthalten ist:

sealed partial class App : Application { … protected override async void OnLaunched(LaunchActivatedEventArgs args) { var rootFrame = new Frame(); … if (!rootFrame.Navigate(typeof(MainPage))) { throw new Exception("Failed to create initial page"); } Window.Current.Content = rootFrame; Window.Current.Activate(); } }

Die Rolle der Application-Klasse 41

Hier wurde zunächst ein neues Frame-Element erzeugt. Die Bereitstellung der Startseite erfolgt nun indirekt durch Navigation. Hierzu nimmt die Methode Navigate() den Typ der entsprechenden Seite entgegen. Das Frame-Objekt kümmert sich nun selbstständig darum, eine entsprechende Instanz zu erstellen und zur Anzeige zu bringen. Funktioniert dies nicht – beispielsweise, weil der angegebene Typ keinem Page-Element entspricht –, gibt sie den Wert false zurück. Daraufhin wird über Window.Current die aktuelle Fensterinstanz ermittelt und dieser über die Eigenschaft Content das zuvor erstellte Frame-Objekt zugewiesen. Für die Anzeige sorgt schließlich der Aufruf der Activate()-Methode.

Die Rolle der Application-Klasse Die Klasse Application ist der Dreh- und Angelpunkt einer App. Sie kommuniziert mit dem Betriebssystem und ist für die Verwaltung der App verantwortlich. Dies betrifft zum Beispiel die Verarbeitung von unbehan-delten Exceptions. Hierfür bietet die Klasse den Event UnhandledException, der immer dann aufgerufen wird, wenn eine Exception an irgendeiner Stelle der App aufgetreten, aber nicht durch einen try-catch-Block abge-fangen wurde. Jede App sollte diesen Event abonnieren und den Benutzer über den aufgetretenen Fehler informieren. Macht sie dies nicht, so beendet Windows einfach die App, ohne dem Benutzer dies zu melden. Das folgende Beispiel zeigt die notwendigen Anpassungen in der jeweiligen App-Klasse:

sealed partial class App : Application { public App() { this.UnhandledException += this.OnUnhandledException; this.InitializeComponent(); } private async void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) { e.Handled = true; await new MessageDialog("Ein interner Fehler ist aufgetreten.\n\n" + e.Message).ShowAsync(); } }

In der Methode OnUnhandledException() wurde zunächst die Eigenschaft Handled auf true gesetzt. Hiermit signalisieren Sie, dass Sie den Fehler selbst verarbeiten und kein automatisches Herunterfahren der App erforderlich ist. Im Anschluss wird der aufgetretene Fehler mithilfe der Klasse MessageDialog ausgegeben. Hierfür können Sie auf die Message-Eigenschaft des übergebenen UnhandledExceptionEventArgs-Objekts zurückgreifen. Alternativ lässt sich auch die Exception-Eigenschaft auswerten. Diese gibt ein Exception-Objekt zurück, welches neben der Fehlermeldung auch eine interne Fehlernummer (HResult) sowie eine Kette verknüpfter Fehler (InnerException) enthält. Wenn Sie den Fehler so wie im oberen Beispiel ausgeben, sollten Sie darauf achten, die Eigenschaft Handled stets zuerst zu setzen. Denn durch den Aufruf von asynchronen Methoden (wie der ShowAsync()-Methode von MessageDialog) kann es passieren, dass die App bereits heruntergefahren wird, noch bevor Sie dies durch Setzen der Eigenschaft unterbinden können. Neben dem beschriebenen Fehlerbehandlungsmechanismus bietet die Klasse Application eine Reihe weite-rer Funktionen, auf die später noch im Detail eingegangen wird.

42 Kapitel 2: Anatomie einer Windows Store-App

Zugriff auf das Fenster Die Klasse Window repräsentiert den Ankerpunkt der Anwendung. Sie ist nicht nur für die Darstellung der Oberfläche, sondern auch für die Verarbeitung von Eingaben, etwa Tastatur, Maus oder Touch, verantwort-lich. Darüber hinaus kümmert sie sich um die verschiedenen Darstellungsformen wie Vollbild oder den Snapped-Modus. Hierbei ist die Funktionalität auf zwei Klassen aufgeteilt: Window und CoreWindow.

Die Klasse Window Die Window-Klasse hat eine recht einfache Schnittstelle, über die Sie beispielsweise auf Größenänderungen reagieren können. Die Klasse kann nicht instanziiert werden, sondern wird automatisch vom jeweiligen Application-Objekt erstellt. Wenn Sie auf Eigenschaften, Methoden oder Events von Window zugreifen wollen, müssen Sie zu-nächst die aktive Instanz ermitteln. Hierzu stellt die Klasse die statische Eigenschaft Current bereit. Um zum Beispiel die Ausmaße des aktiven Fensters zu ermitteln, müssen Sie daher wie folgt vorgehen:

Rect windowBounds = Window.Current.Bounds;

In der folgenden Tabelle finden Sie die wichtigsten Member der Klasse Window:

Member Beschreibung

Bounds Gibt eine Rect-Struktur zurück, welche die Ausmaße des Fensters enthält

Content Enthält den anzuzeigenden Inhalt. Zwar ist die Eigenschaft vom Typ UIElement, in der Praxis wird sie jedoch fast immer mit einer Frame-Instanz gefüllt.

CoreWindow Gibt die zugehörige CoreWindow-Instanz zurück

Dispatcher Bietet Zugriff auf die Dispatcher-Klasse, welche für das Management des UI-Threads verantwortlich ist

Visible Dient zur Steuerung der Sichtbarkeit des Fensters

Activate() Bringt das Fenster in den Vordergrund

Activated Wird ausgelöst, wenn die App in den Vordergrund kommt und den Eingabefokus erhält

SizeChanged Wird ausgelöst, wenn sich die Größe des Fensters ändert. Dies kann zum Beispiel beim Wechseln in den Snapped-Modus der Fall sein.

VisibilityChanged Wird ausgelöst, wenn sich die Sichtbarkeit des Fensters ändert

Tabelle 2.1 Die wichtigsten Member der Klasse Window

Die Klasse CoreWindow CoreWindow bietet hingegen Zugriff auf Low-Level-Funktionalität – zum Beispiel für das Abfangen von Tastaturereignissen oder das Abfragen von Systemtasten. So können Sie beispielsweise die Events KeyUp, KeyDown, PointerPressed und PointerReleased verwenden, um auf Tastenanschläge oder Mausklicks zu reagie-ren. Zudem lässt sich über die Methode GetKeyState() explizit abfragen, ob eine bestimmte Taste gedrückt wurde. Die Eigenschaften PointerPosition und PointerCursor liefern hingegen die aktuelle Position bezie-hungsweise das Erscheinungsbild des Mauszeigers.

Navigation mit der Klasse Frame steuern 43

Der folgende Code setzt zum Beispiel den Mauszeiger der App in den Status Wait:

Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.Wait, 0);

Navigation mit der Klasse Frame steuern Die Klasse Frame übernimmt nicht nur die Bereitstellung von Seiten, sondern kümmert sich auch um die Navigation zwischen diesen. Hierfür stellt sie unter anderem die vorhin genannte Methode Navigate() zur Verfügung. Diese nimmt ein Objekt vom Typ TypeName entgegen, welches die entsprechende Seite beschreibt. Der folgende Code zeigt hierfür ein Beispiel:

rootFrame.Navigate(typeof(MainPage));

Optional können Sie auch eine Überladung von Navigate() verwenden, die zusätzlich einen Initialisierungs-parameter entgegennimmt:

rootFrame.Navigate(typeof(DetailPage), myData);

Die Navigate()-Methode gibt einen booleschen Wert zurück, der den Erfolg der Navigation signalisiert. Diesen sollten Sie in jedem Fall auswerten, da im Falle eines Fehlers nicht automatisch eine Exception ausgelöst wird. Wie Sie später sehen werden, kann es auch vorkommen, dass die Zielseite die Navigation abbricht. BEGLEITDATEIEN Die Begleitdateien zu den folgenden Beispielen finden Sie im Verzeichnis:

...\Kapitel 2\NavigationDemo

Da die Navigation jedoch von den Seiten selbst veranlasst wird, müssen diese die Aufgabe an die überge-ordnete Frame-Instanz delegieren. Hierfür enthält jedes Page-Objekt die Eigenschaft Frame. Der Wechsel von einer Seite zu einer anderen könnte somit wie folgt aussehen:

this.Frame.Navigate(typeof(DetailPage), myData);

Bei jedem Zugriff auf die Frame-Eigenschaft sollten Sie prüfen, ob diese bereits gefüllt wurde. Denn erst nach der vollständigen Beendigung des Navigationsvorgangs wird die Frame-Eigenschaft der Page mit einer jeweiligen Instanz belegt. Aus diesem Grund können beispielsweise Zugriffe auf die Frame-Eigenschaft im Konstruktor der Zielseite zu einem Fehler führen, da zum Zeitpunkt der Erstellung noch kein Frame zuge-ordnet wurde. Aus diesem Grund sollte der obere Code besser wie folgt umgeschrieben werden:

if (this.Frame != null) this.Frame.Navigate(typeof(DetailPage), myData);

Stichwortverzeichnis

.NET-Metadaten 27

.NET-Profil für Windows Store-Apps 322

.NET-Profil für WinRT 31 2D-Objekte 150 32-Bit-Version 328 3D-Effekte mit Projektionen realisieren 165 64-Bit-Version 328

A

Abbrechen von asynchronen Operationen 315 ABI siehe Abstract Binary Interface Ablaufdatum von Push-Benachrichtigungen 269 Abomodelle 366 Abstract Binary Interface 29 Absturzanalyse 329 AC-3-Format 135 AccessListEntry-Klasse 290

Metadata-Eigenschaft 290 Token-Eigenschaft 290

Activated-Event 50 Add-AppDevPackage.ps1-Datei 330 AddDeleteThemeTransition-Klasse 161 ADO.NET 31 ADTS-Format 135 Advertising SDK 375 Akkulaufzeit 16 Akkuverbrauch 297 Aktualisierung zwischengespeicherter Dateien 57 Aktualisierungsfrequenz für Benachrichtigungen 264 Altersbeschränkungen 335 Altersfreigabe 336, 351 Analyse des Laufzeitverhaltens 333 Android 17 Anhalten und Fortsetzen von Apps 334 Animationen 22, 129, 154

Benutzerdefinierte Animationen 154 erstellen 155 Theme-Animationen 154 Transition-Animationen 154

Animationseffekte 124

Animationsklassen By-Eigenschaft 155 From-Eigenschaft 155 To-Eigenschaft 155

Anmeldeinformationen 316 Anwendungsbenutzeroberfläche 35 Anwendungseinstellungen 292 Anwendungseinstellungen im Dateisystem ermitteln

293 Anzeigedauer von Benachrichtigungen steuern 262 Anzeigeformen 23 App als Quelle eines Contracts 58 App Bar 21, 333, 334 App Bars 140

Styles 142 App beschreiben 336 App Certification Kit siehe Windows App Certifica-

tion Kit App Contracts 57 App im Firmennetz verteilen 326 app.config 322 App.cs-Datei 40 App.xaml 34 App.xaml.cs 34 app.xaml-Datei 83 AppBar-Klasse 140

Closed-Event 143 IsOpen-Eigenschaft 143 Opened-Event 143

App-Beschreibung 337, 360 App-Block-Map 326 appcert-Tool 342 App-Datenverzeichnis 261, 286, 292 App-Design 16 App-Isolation 29 App-Kategorie 336 App-Klasse 62, 283 Apple 337 Application Bars 140 Application ID 277 Application Manifest siehe App-Manifest ApplicationDataCompositeValue-Klasse 298

378 Stichwortverzeichnis

ApplicationDataContainer-Klasse 294, 295, 297 CreateContainer()-Methode 294 DeleteContainer()-Methode 295 Values-Eigenschaft 294

ApplicationDataCreateDisposition-Enumeration 294 ApplicationData-Klasse 286, 294, 297, 298, 299

Current-Eigenschaft 286, 294 DataChanged-Event 298 LocalFolder-Eigenschaft 286 LocalSettings-Eigenschaft 294 RoamingFolder-Eigenschaft 286 RoamingSettings-Eigenschaft 294, 297 RoamingStorageQuota-Eigenschaft 297 SetVersionAsync()-Methode 299 TemporaryFolder-Eigenschaft 286 Version-Eigenschaft 299

ApplicationDataSetVersionHandler-Klasse 299 Application-Klasse 40, 50, 62, 83

OnLaunched()-Methode 51, 62 OnSearchActivated()-Methode 62 Suspending-Event 50 UnhandledException-Event 41

ApplicationView-Klasse 210 TryUnsnap()-Methode 211 Value-Eigenschaft 210

ApplicationViewState-Enumeration 210 App-Logo 261 App-Manifest 34, 53, 57, 61, 79, 235, 254, 274, 278, 287,

326, 337, 338, 347, 369 App-Name 336 App-Name mit lokalem Projekt verknüpfen 354 App-Namen reservieren 347 App-Paket erstellen 327 App-Paket hochladen 358 App-Pakete 334 App-Registrierung 336 Apps

Abomodelle 366 anhalten und fortsetzen 334 beschreiben 336, 337 Bewertungen 366 Darstellungsformen 22 Datenverzeichnis 286 deinstallieren 292 Design-Guidelines 19 Download-Verzeichnis 287 einreichen 332 Einstellungen laden und speichern 294 Einstellungen synchronisieren 295 Einstellungen visualisieren 300 Erforderliche Bilder 81

Fehlerbehandlung 41, 333 Herausgeber 344 im Store veröffentlichen 342 Kachel 332 Laufzeitverhalten 48, 333 Lebenszeit 24 Lebenszeitmodell 48 Lebenszyklus 40 Leistungskriterien 334 Lizenzmodelle 366 Logos 261 lokalisieren 235, 336 manuell auf anderen Geräten installieren 330 mit Werbung versehen 375 Name mit lokalem Projekt verknüpfen 354 Namen reservieren 347 Nutzung 366 per Sideloading verteilen 327 Projektaufbau 33 Promotional Images 82 Prozessortypen 333 registrieren 336 Schrifteigenschaften 83 Screenshots 82, 332, 361 signieren 331 Startparameter 272 Support 336 Symbole festlegen 34 testen 338 Testversionen 332 Trial-Version erstellen 373 übermitteln 347 Updates 333, 336, 361 Verhaltensweise 333 verifizieren 338 Verkaufsdetails 348 veröffentlichen 326 Veröffentlichungsdatum 349 verteilen 326 Vollversion aus der App heraus erwerben 375 zertifizieren 332, 335, 337 Zwischenversionen 332

App-spezifische Bilder 81 App-Symbol 34 App-Version 299 AppxBlockMap.xml 326 appx-Datei 326 appxupload-Datei 359 APPX-URI-Format 286 ARM-basierte Hardware 15, 328 ASF siehe Atom Syndication Format

Stichwortverzeichnis 379

ASF-Format 135 ASP.NET 31 ASP.NET MVC 264, 318 ASP.NET MVC Web-API 264 Assets 34 Atom Publishing Protocol 324 Atom Syndication Format 324 ATOM-Feeds 324 AtomPub siehe Atom Publishing Protocol Attached Properties 69, 92, 94, 218, 247 audio-Element 282 Audiostreams 335 Audiowiedergabe 135 Ausgabeparameter 252 Ausschneiden in die Zwischenablage 232 Auswahldialog 229 Auswahllisten 123 Authentifizierung 266, 324, 335 Authentifizierungsarten 322 Authorization 268 Automatisches Scrollen 102 AVI-Format 135 await-Schlüsselwort 225 Azure Mobile Services 324

B

BackEase-Klasse 159 BackgroundDownloader-Klasse 312, 316

CostPolicy-Eigenschaft 317 CreateDownload()-Methode 313 GetCurrentDownloadsAsync()-Methode 316 ProxyCredential-Eigenschaft 316 ServerCredential-Eigenschaft 316 SetRequestHeader()-Methode 316

BackgroundDownloadProgress-Klasse 314 BytesReceived-Eigenschaft 314 TotalBytesToReceive-Eigenschaft 314

BackgroundUploader-Klasse 312 Badge Logo 82 badge-Element 271 Badges 270 Badge-Symbole 271 BadgeUpdateManager-Klasse 272, 276

CreateBadgeUpdaterForApplication()-Methode 272 CreateBadgeUpdaterForSecondaryTile()-Methode

276 BadgeUpdater-Klasse 272

Clear()-Methode 272 StartPeriodicUpdate()-Methode 272 StopPeriodicUpdate()-Methode 272

Bandbreite 317 Basic-Authentifizierung 322 BasicHttpBinding-Klasse 322 Befehle auf der Oberfläche abbilden 140 Begrüßungsbildschirm 81 Belege anfordern und prüfen 371 Benachrichtigungen 25, 333, 335

bei gesperrtem Bildschirm 274 kennzeichnen 262 konfigurieren 257 mit Toasts 277

Benutzerdefinierte Animationen 154 Benutzereinstellungen 292 Benutzeroberfläche

Dynamik 21 Geschwindigkeit 21

Benutzersteuerelement 219 Berechtigungen 300 Betriebssystemdienste 26 Bewertungen 366 Bewertungszertifikate 351 Bildauflösungen 79 Bildauswahldialog 231 Bildbibliothek 55 Bilder 261 Bilder anzeigen 134 Bilder kopieren und einfügen 231 Bildformate, die von WinRT unterstützt werden 134 Bildformate für App-Logos 82 Bildgrößen 79 Bildordner 238 Bildschirmanzeige 22 Bildschirmauflösungen 334 Bildschirmformate 215 Binäre Kommunikation 310 BinaryMessageEncoding 322 BindableBase-Klasse 180, 243 Binding Markup Extension 127 binding-Element 278 BindingExpression-Klasse 172 Binding-Klasse 172

Converter-Eigenschaft 183 ConverterLanguage-Eigenschaft 184 ConverterParameter-Eigenschaft 183 ElementName-Eigenschaft 172 Mode-Eigenschaft 178 Path-Eigenschaft 172 Source-Eigenschaft 172

Binding-Markup Extension 173 BindingMode-Enumeration 178 BindingOperations-Klasse 175

380 Stichwortverzeichnis

Bindungen 241, 322 Bindungseinstellungen 323 Bindungselemente 322 BitmapImage-Klasse 78, 232, 291, 312

SetSource()-Methode 291 SetSourceAsync()-Methode 312

Blend für Visual Studio 14, 149, 212 BMP-Format 134 Border-Klasse

CornerRadius-Eigenschaft 148 BounceEase-Klasse 159 Breites Logo 82 Brushes 150, 151 Brush-Klasse 112, 151 Buffered-Übertragungsart 322 Buildvorgang 76 Bündelung von zusammenhängenden Einstellungen

298 Business-Apps 18 Business-Bereich im Store 343 Button-Klasse 114, 244

Command-Eigenschaft 114, 241 CommandParameter-Eigenschaft 244 Content-Eigenschaft 114 IsEnabled-Eigenschaft 244

Byte-basierte Konvertierung 311

C

C# 29 C++ 29, 248 CallbackBehavior-Klasse 322 Callback-Methode 217 CallerMemberName-Attribut 179 CancellationTokenSource-Klasse 314, 315

Cancel()-Methode 315 Dispose()-Methode 315

Canvas-Klasse 99, 304 Bottom-Eigenschaft 100 Left-Eigenschaft 100 Right-Eigenschaft 100 Top-Eigenschaft 100 ZIndex-Eigenschaft 100

Capabilities 35, 53, 287, 308, 334, 336, 343, 363 Capabilities in einer App verwenden 55 Capabilities konfigurieren 53 ChannelFactory-Klasse 322 Charms Bar 24, 57, 58, 300, 334, 337, 364 CheckBox-Control 22

CheckBox-Klasse 115 Checked-Event 115 IsChecked-Eigenschaft 115

CircleEase-Klasse 159 Client Secret 266 ClientCredentials-Klasse 323 Clientseitiger Zugriff auf SOAP-basierte Services 323 Clipboard-Klasse 229

GetContent()-Methode 231 SetContent()-Methode 230

ClockState-Enumeration 156 Cloud 25, 266, 295 clr-namespace-Schlüsselwort 68 Codecs 135 Collection Views 197 Collection-Klasse 132 CollectionViewSource.Klasse

IsSourceGrouped-Eigenschaft 200 CollectionViewSource-Klasse 197

Source-Eigenschaft 197 View-Eigenschaft 197

ColorAnimation-Klasse 155 ColumnDefinition –Klasse

Width-Eigenschaft 95 COM siehe Component Object Model ComboBox-Control 22 ComboBoxItem-Klasse 127 ComboBox-Klasse 123, 128, 192

DisplayMemberPath-Eigenschaft 192 DropDownClosed-Event 129 DropDownOpened-Event 129 IsDropDownOpen-Eigenschaft 129 IsEditable-Eigenschaft 129 IsSelectionBoxHighlighted-Eigenschaft 129 ItemsSource-Eigenschaft 192 ItemTemplate-Eigenschaft 192 MaxDropDownHeight-Eigenschaft 129 SelectedItem-Eigenschaft 192 SelectedValue-Eigenschaft 192 SelectedValuePath-Eigenschaft 192 SelectionBoxItem-Eigenschaft 129 TemplateSettings-Eigenschaft 129

Command-Bindung in XAML 244 Command-Eigenschaft 244 Command-Pattern 241 Common-Projektordner 34 Compileranweisungen 368 Component Object Model 26 CompositeSettingValue-Klasse 298 CompositeTransform-Klasse 164 ConnectionOrientedTransport 322

Stichwortverzeichnis 381

ConnectionProfile-Klasse 309 GetNetworkConnectivityLevel()-Methode 309 GetNetworkNames()-Methode 310

Consumer-Apps 18 ContactInformation-Klasse 229 ContactPicker-Klasse 222, 228

DesiredFields-Eigenschaft 229 Emails-Eigenschaft 229 PickMultipleContactsAsync()-Methode 229 PickSingleContactAsync()-Methode 229

Content 337 Content Properties 68 ContentControl-Klasse 69, 72, 141

Content-Eigenschaft 72 ContentTemplate-Eigenschaft 72

ContentPresenter-Klasse 148 ContentProperty-Attribut 69 ContentThemeTransition-Klasse 161 Contracts 24, 57 contrast-Schlüsselwort 79 Control Templates 146 Control-Klasse 72, 112, 146, 247

Background-Eigenschaft 72, 112 BorderBrush-Eigenschaft 112 BorderThickness-Eigenschaft 112 FontFamily-Eigenschaft 72, 114 FontSize-Eigenschaft 72, 114 FontStretch-Eigenschaft 114 FontStyle-Eigenschaft 114 FontWeight-Eigenschaft 114 Foreground-Eigenschaft 72, 112 IsEnabled-Eigenschaft 107 Template-Eigenschaft 146

Controls 112, 215 Hintergrund, Vordergrund und Rahmen anpassen

112 Schriftstil manipulieren 114

ControlTemplate-Klasse 146 Control-Templates extrahieren 149 CoreWindow-Klasse 42

GetKeyState()-Methode 42 KeyDown-Event 42 KeyUp-Event 42 PointerCursor-Eigenschaft 42 PointerPosition-Eigenschaft 42 PointerPressed-Event 42 PointerReleased-Event 42

Crashdumps 329 CubicEase-Klasse 159

CurrentApp-Klasse 367, 373 GetProductReceiptAsync()-Methode 371 LicenseChanged-Event 374 LicenseInformation 367 LicenseInformation-Eigenschaft 373 LoadListingInformationAsync()-Methode 370, 374 RequestAppPurchaseAsync-Methode() 375 RequestProductPurchaseAsync() 371

CurrentAppSimulator-Klasse 367 GetProductReceiptAsync()-Methode 371 LicenseChanged-Event 374 LicenseInformation-Eigenschaft 368, 373 LoadListingInformationAsync()-Methode 370, 374 ReloadSimulatorAsync()-Methode 369 RequestAppPurchaseAsync-Methode() 375 RequestProductPurchaseAsync() 371

CurrentChangingEventArgs-Klasse 199 Custom Controls 148, 215 CustomBinding-Klasse 322

D

Darstellungsformen 22 Dashboard 268, 345, 346, 354 Data Templates 127, 188 DataContext-Eigenschaft 194, 241 DataContractJsonSerializer-Klasse 319, 320, 322

ReadObject()-Methode 319 WriteObject()-Methode 320

DataContractSerializer-Klasse 322 DataPackage-Klasse 60, 131, 230, 234

GetView()-Methode 132 Properties-Eigenschaft 60 RequestedOperation-Eigenschaft 131 SetBitmap()-Methode 230, 231 SetData()-Methode 132, 234 SetDataProvider()-Methode 132, 234 SetHTMLFormat()-Methode 230 SetStorageItems()-Methode 232 SetUri()-Methode 235

DataPackageOperation-Enumeration 232 DataPackageView-Klasse 132, 231, 234

AvailableFormats-Eigenschaft 231 Contains()-Methode 132, 231 GetBitmapAsync()-Methode 232 GetDataAsync()-Methode 132, 234 GetHtmlFormatAsync()-Methode 231 GetRtfAsync()-Methode 231 GetStorageItemsAsync()-Methode 233 GetTextAsync()-Methode 231 RequestedOperation-Eigenschaft 132, 233

382 Stichwortverzeichnis

DataProviderDeferral-Klasse Complete()-Methode 235

DataProviderRequest-Klasse 235 GetDeferral()-Methode 235

DataReader-Klasse 291 DataRequestEventArgs-Klasse 59

Request-Eigenschaft 59 DataTemplate-Klasse 188 DataTemplateSelector –Klasse

SelectTemplateCore()-Methode 190 DataTemplateSelector-Klasse 190 DataTransferManager-Klasse 59

DataRequested-Event 59 GetForCurrentView()-Methode 59 ShowShareUI()-Methode 61

DataWriter-Klasse 292 WriteBoolean()-Methode 292 WriteDateTime()-Methode 292 WriteString()-Methode 292

Datei im Hintergrund herunterladen 313 Dateiauswahl 289 Dateiauswahldialog 221, 225, 287 Dateien

per Dialog öffnen 224 Dateien speichern 227, 291 Dateilisten 232 Dateiöffnungsauswahl 57 Dateispeicherungsauswahl 57 Dateisystemobjekt 290 Dateitypen 224 Dateitypendeklaration 287 Dateitypzuordnungen 58 Daten anlegen, ändern und löschen 320 Daten im Hintergrund transferieren 312 Daten über HTTP übertragen 310 Datenaustausch 229 Datenaustauschobjekt 230 Datenbankverbindungen 317 Datenbindung 241

Bindung per Code herstellen und ermitteln 175 Bindungspfad definieren 174 Dynamische Template-Zuweisung 189 Enumerationswerte binden 185 Implizite Datenquellen 176 Listenbindungen 186 Listendarstellung mit Data Templates anpassen 188 Listensteuerung mit ICollectionView und

CollectionViewSource 197 Objektdatenquelle zuweisen 175 Synchronisation steuern 178 Synchronisation von Listenquellen ermöglichen 196

Unterstützung für Synchronisation in der Datenquelle bereitstellen 178

Werte zwischen Quelle und Ziel konvertieren 181 XAML-Elemente miteinander verbinden 173

Datencontainer 240 Datenformate 229 Datengebundene Listen 126 Datenklassen 240 Datenquellen 241 Datenschutzrichtlinie 334, 364 Datenstrom 291 Datentransferobjekte 131 Datenverbindung 298 DateTimeOffset-Struktur 262, 280, 283 Debug Location 51 Debug-Code 338 Debugger 51 DebugSettings-Klasse 175

BindingFailed-Event 175 Debugspeicherort 51 Debug-Symbole 329 DEBUG-Symbole 368 DefaultOverload-Attribut 251 Default-Schlüsselwort 85 Deferral-Klasse

Complete()-Methode 50 Deferral-Klasse 50 Deinstallation von Apps 326 Deinstallieren von Apps 292 Deklarationen 35, 61 DelegateCommand-Klasse 244 DELETE-Operation 310, 318 Dependency Properties 71, 148, 173, 178, 216

definieren 216 DependencyObject-Klasse 72, 216

ClearValue()-Methode 72, 216 GetValue()-Methode 72, 216 SetValue()-Methode 72, 216

DependencyProperty-Klasse 71, 216, 218 Register()-Methode 217 RegisterAttached()-Methode 218

Design-Guidelines 19, 144 Designrichtlinien 332 Designsprache 15, 337 Desktop-Apps 338 Desktopcomputer 333 Device 298 Dienstverweis hinzufügen 322 Digest-Authentifizierung 322 Digital Rights Management 135, 353 Digitale Signatur 371

Stichwortverzeichnis 383

Digitalen Kaufbeleg anfordern 375 DirectX 350 DiscreteDoubleKeyFrame-Klasse 157 Diskrete Keyframes 157 Dispatcher-Klasse 309

RunAsync()-Methode 309 DisplayProperties-Klasse 81

ResolutionScale-Eigenschaft 81 Dokumentenbibliothek 54, 343 Domain-Tasten 120 DoubleAnimation-Klasse 155, 211 DoubleAnimationUsingKeyFrames-Klasse 157 DownloadOperation-Klasse 313, 314

Group-Eigenschaft 317 Pause()-Methode 314 Progress-Eigenschaft 314 ResultFile-Eigenschaft 315 Resume()-Methode 314 StartAsync()-Methode 313

Downloads 335 nach Neustart wiederaufnehmen 316 pausieren, fortsetzen, abbrechen 314

DownloadsFolder-Klasse 287 CreateFileAsync()-Methode 287 CreateFolderAsync()-Methode 287

Download-Verzeichnis 287 DPI 79 DPI-Zahl 22 Drag & Drop 21, 124, 129 Drag & Drop implementieren 130 DragItemsStartingEventArgs-Klasse 131

Data-Eigenschaft 131 Drahtlosnetzwerk 54 DRM siehe Digital Rights Management DuplexChannelFactory-Klasse 322 duration-Attribut 281, 282

E

EasingFunctionBase-Klasse 158 Easing-Funktionen 158 Easing-Klassen 158 EasingMode-Eigenschaft 158 ECMA 335-Standard 27 E-Commerce 335 Einfügeoperation 234 Eingaben 42 Eingebettete Ressourcen 77 Einreichen von Apps 332 Einschränkungen für App-Inhalte 336

Einstellungen 364 Einstellungen für Druckaufgaben 58 Einstellungen gruppieren 294 Einstellungen laden und speichern 294 Einstellungen löschen 295 Einstellungen versionieren 299 Einstellungen visualisieren 300 Einstiegspunkt der App 34 Einverständniserklärung 334 ElasticEase-Klasse 159 Elemente kippen 163 Elemente rotieren 162 Elemente skalieren 101, 163 Elemente transformieren 161 Elemente verschieben 163 Ellipse-Klasse 150

Height-Eigenschaft 150 Width-Eigenschaft 150

E-Mail 229 E-Mail-Adressen eingeben 120 EnableDependentAnimation-Eigenschaft 155 Encodieren von Zeichenketten 311 Endanwender-Apps 18 Enterprise Sideloading 330 EntranceThemeTransition-Klasse 161 Entwicklerkonto 342, 355 Entwicklerkontotypen 343 Entwicklerlizenz 33, 308, 332 Erweiterte Capabilities 343 Erweiterte Features 366 Erweiterte Features einer App 350 ESRB 335 EventHandler<T>-Klasse 250 ExponentialEase-Klasse 159 Expression Blend 212 Extensible Application Markup Language 66

F

Factory-Methoden 252 FadeOutThemeAnimation-Klasse 160 Farbeditor 113 Farben 20 Farbschemaleiste 113 Farbschemata 84 Farbverlauf erstellen 152 Farbverlauf erzeugen 112 Farbverlauf in Visual Studio definieren 113 Farbverlaufsleiste 113 Favoritenlisten 295

384 Stichwortverzeichnis

Fehlerbehandlung 41, 333 FileAccessMode-Enumeration 290 FileIO-Klasse 291

ReadBufferAsync()-Methode 291 ReadLinesAsync()-Methode 291 ReadTextAsync()-Methode 291 WriteTextAsync()-Methode 292

FileOpenPicker-Klasse 221, 224, 290 CommitButtonText-Eigenschaft 225 PickMultipleFilesAsync()-Methode 225 PickSingleFileAsync()-Methode 225 SettingsIdentifier-Eigenschaft 225 SuggestedStartLocation-Eigenschaft 224 ViewMode-Eigenschaft 224

FileSavePicker-Klasse 221, 227 DefaultFileExtension-Eigenschaft 227 FileTypeChoices-Eigenschaft 227 PickSaveFileAsync()-Methode 227 SuggestedFileName-Eigenschaft 227 SuggestedStartLocation-Eigenschaft 227

FileTypeFilter-Eigenschaft 224 Filled-Modus 23, 334, 337 Finger-, Tastatur- und Mauseingabe 333 Fingereingabemodus 122 FlagsAttribute-Klasse 252 FlipBox-Klasse 123 FlipView-Control 22 FlipView-Klasse 129 FolderPicker-Klasse 221, 226

CommitButtonText-Eigenschaft 226 FontStyle-Enumeration 114 Formatierten Text darstellen 116 Fortschritt anzeigen mit ProgressBar und

ProgressRing 139 Fortschritt eines Downloads überwachen 313 Frame-Klasse 40, 43, 46

CacheSize-Eigenschaft 46 CanGoBack-Eigenschaft 44 CanGoForward-Eigenschaft 44 GetNavigationState()-Methode 45 GoBack()-Methode 44 GoForward()-Methode 44 Navigate()-Methode 41, 43 Navigated-Event 44 Navigating-Event 45 NavigationFailed-Event 45 NavigationStopped-Event 45 SetNavigationState()-Methode 45

FrameworkElement-Klasse 72, 83, 105, 175 DataContext-Eigenschaft 177, 187, 221, 242 FlowDirection-Eigenschaft 237

HorizontalAlignment-Eigenschaft 109 Margin-Eigenschaft 108 MaxHeight-Eigenschaft 108 MaxWidth-Eigenschaft 108 MinHeight-Eigenschaft 108 MinWidth-Eigenschaft 108 Padding-Eigenschaft 108 Resources-Eigenschaft 83 SetBinding()-Methode 72, 175 VerticalAlignment-Eigenschaft 109

Freigabequelle 24 Freigegebene Benutzerzertifikate 55, 308 Full-Modus 23, 334, 337 FullScreenLandscape-Modus 210 FullScreenPortrait-Modus 210 Funktionen (Capabilities) 53 Funktionen (Registerkarte) siehe Capabilities Future Access List 289

G

Geld verdienen 365, 375 Generische Delegaten 245 Geografische Märkte 336 Geolocator-Klasse 55

GetGeopositionAsync()-Methode 56 Gerät automatisch wiedergeben 58 Gerätetypen 363 Geräteübergreifende Daten 295 Gerät-Fenster 80 Geschäftsmodelle 18 Gesten 333 Geteilte App 46, 52, 215, 243 Geteilte App (XAML) 32 GET-Operation 310, 318 GIF-Format 134 Google 337 GPS 54 GradientStop-Klasse 151 Gratis-Apps 366 Grid-Klasse 93

ColumnDefinitions-Eigenschaft 94 Column-Eigenschaft 94 ColumnSpan-Eigenschaft 94 RowDefinitions-Eigenschaft 94 Row-Eigenschaft 94 RowSpan-Eigenschaft 94

GridView-Control 22 GridViewItem-Klasse 127

Stichwortverzeichnis 385

GridView-Klasse 124, 129, 204 AllowDrop-Eigenschaft 130 CanDragItems-Eigenschaft 130 CanReorderItems-Eigenschaft 130 DragItemsStarting-Event 131 IsItemClickEnabled-Eigenschaft 133 IsSwipeEnabled-Eigenschaft 133 ItemClick-Event 133 SelectionMode-Eigenschaft 133 Selektion steuern 133

Größen von Elementen beeinflussen 105 GroupStyle-Klasse 200, 204

HeaderTemplate-Eigenschaft 200, 204 GUID 290 Gültigkeitszeitraum 366

H

Heimnetzgruppe 55 Herausgeber 344 Herunterfahren der App 316 Herunterladen großer Dateien 316 HighContrast-Schlüsselwort 85 HighPriority-Einstellungen 297 Hintergrundaufgaben 58, 275 Hintergrundprozesse 298, 312 Hinweise für Tester 364 Hotmail 324 HResult 41 HTML 66, 311 HtmlFormatHelper-Klasse 230 HTML-formatierten Text 230 HTML-Sonderzeichen konvertieren 311 HTTP 268, 317 HttpClient-Klasse 310, 318, 320

DeleteAsync()-Methode 310, 320 GetAsync()-Methode 310, 318 PostAsync()-Methode 310, 320 PutAsync()-Methode 310, 320

HttpContent-Klasse 311, 318 ReadAsByteArrayAsync()-Methode 311 ReadAsStreamAsync()-Methode 311, 319 ReadAsStringAsync()-Methode 311, 319

HTTP-Header 265, 310, 316 HTTP-Kommunikation 310 HTTP-Operationen 318 HttpResponseMessage-Klasse 311, 318, 321

Content-Eigenschaft 318 HTTP-Statuscode 311 HttpStatusCode-Enumeration 311

HTTP-Statuscodes 318 HttpsTransport 322 HttpTransport 322 HyperlinkButton-Klasse 115

NavigateUri-Eigenschaft 115

I

IBindableIterable-Interface 250 IBindableVector-Interface 250 IBuffer-Interface 291 ICO-Format 134 ICollectionView-Interface 197

CurrentChanged-Event 198 CurrentChanging-Event 198 CurrentItem-Eigenschaft 197 CurrentPosition-Eigenschaft 197 IsCurrentAfterLast-Eigenschaft 198 IsCurrentBeforeFirst-Eigenschaft 198 MoveCurrentTo()-Methode 197 MoveCurrentToFirst()-Methode 198 MoveCurrentToLast()-Methode 198 MoveCurrentToNext()-Methode 198 MoveCurrentToPosition()-Methode 197 MoveCurrentToPrevious()-Methode 198

ICommand-Implementierung 245 ICommand-Interface 244

CanExecute()-Methode 244 CanExecuteChanged-Event 244 Execute()-Methode 244

id-Attribut 256 IDictionary<TKey, TValue>-Interface 250 IEnumerable<T>-Interface 250 IEnumerable-Interface 186, 250 IEnumerator<T>-Interface 250 IIterable<T>-Interface 250 IIterator<T>-Interface 250 ILDASM-Tool 27 IList<T>-Interface 250 IList-Interface 250 ImageBrush-Klasse 151

ImageSource-Eigenschaft 151 Image-Klasse 81, 134, 232, 291

Source-Eigenschaft 291 Stretch-Eigenschaft 134

IMap<K, V>-Interface 250 IMapView<K, V>-Interface 250 IMultiValueConverter-Interface 183 In-App-Verkäufe 335, 365, 366 Infoanzeigerlogo 274

386 Stichwortverzeichnis

Inhalt automatisch wiedergeben 58 Inhaltsauswahl 58 Inhaltsbeschränkungen 335 Inhaltsrichtlinien 333 INotifyPropertyChanged-Interface 178, 243 Installationsverzeichnis 287 Intel 15 Interaktionslogik 244 Internet 308, 316 Internet (Client und Server) 54 Internet (Client) 54 Internetverbindung 310 Interoperabilität 28 IObservableVector<T>-Interface 196 iOS 17 IOutputStream-Interface 292 IP-Adresse 54 IRandomAccessStream-Interface 78, 132, 291, 292, 312

GetInputStream()-Methode 292 GetOutputStream()-Methode 292

IRandomAccessStreamWithContentType-Interface 232 IReadOnlyDictionary<TKey, TValue>-Interface 250 IReadOnlyList<T>-Interface 250 IReferenceArray<T>-Interface 252 ISO-Kürzel für Sprachen 235, 237 IStorageFile-Interface 315 IStorageItem-Interface 132, 233

IsOfType()-Methode 233 ItemCollection-Klasse 125

Add()-Methode 125 InsertAt()-Methode 125 Remove()-Methode 125 RemoveAt()-Methode 125

ItemsControl-Klasse 73, 124, 200 DisplayMemberPath-Eigenschaft 126, 187 GroupStyle-Eigenschaft 200 ItemContainerStyle-Eigenschaft 127, 128 Items-Eigenschaft 73 ItemsPanel-Eigenschaft 128 ItemsSource-Eigenschaft 73, 126, 187 ItemTemplate-Eigenschaft 128, 188 ItemTemplateSelector-Eigenschaft 190 ScrollIntoView()-Methode 126 SelectAll()-Methode 126 SelectedIndex-Eigenschaft 125 SelectedItem-Eigenschaft 125 SelectionMode-Eigenschaft 125

ItemsPanelTemplate-Klasse 128 IUICommand-Interface 301 IUri-Interface 132

IValueConverter-Interface 182 Convert()-Methode 182 ConvertBack()-Methode 182

IVector<T>-Interface 250 IVectorView<T>-Interface 250

J

JavaScript 28, 138, 248 JavaScript Object Notation 317 JPEG XR-Format 134 JPEG-Format 134 JSON 268 JSON-Format 317 JSON-formatierte Ergebnismengen 319 JsonObject-Klasse 320

GetNamedNumber()-Methode 320 GetNamedString()-Methode 320 Parse()-Methode 320

JSON-Strings auslesen 320 Jugendgefährdende Inhalte 335

K

Kachel 17, 25, 332 Kachelgrößen 254 Kacheln 254

über Server aktualisieren 263 Kameraeinstellungen 58 Kategorie einer App 349 Kaufvorgang 371 Kerberos 353 Keyframe-Klassen 157 KeyFrame-Klassen

KeyTime-Eigenschaft 158 Value-Eigenschaft 158

Kleines Logo 82 KnownContactField-Enumeration 229 KnownFolders-Klasse 288

DocumentsLibrary-Eigenschaft 288 HomeGroup-Eigenschaft 288 MediaServerDevices-Eigenschaft 288 MusicLibrary-Eigenschaft 288 PicturesLibrary-Eigenschaft 288 RemovableDevices-Eigenschaft 288 VideosLibrary-Eigenschaft 288

Konfiguration von Services 322 Konfigurationsdatei 322 Konfigurationsdaten 292

Stichwortverzeichnis 387

Konfigurationseinstellungen 24 Kontakte auswählen 228 Kontaktfelder 229 Kontextsensitive Befehle 144 Kontobildanbieter 58 Kontrasteinstellung in der App berücksichtigen 84 Kontrastmodus 79 Konvertierung von URLs 311 Kopieren in die Zwischenablage 232 Kopieroperation 233 Kopierschutz 353 Kreditkartendaten 335 Kryptografie 352

L

Lambda-Expression 223 Längen- und Breitengrad ermitteln 55 Laufrichtung von Text 237 Laufzeitinformationen 292 Laufzeitverhalten einer App 48 LaunchActivatedEventArgs-Klasse 51

PreviousExecutionState-Eigenschaft 51 launch-Attribut 283 Layout 22, 92 Layout Rounding 81 Layout von Elementen steuern 105 LayoutAwarePage-Klasse

LoadState()-Methode 53 SaveState()-Methode 53

LayoutAwarePage-Klasse 46, 215 Layoutcontainer 73, 92, 107, 162, 215 Layoutprozess 106 Layoutregeln 92 Layoutrichtung 81 Lebenszeit einer App 24 Lebenszeitmodell von Apps 48 Lebenszyklus einer App 40 Leere App (XAML)(Visual Studio-Vorlage) 32 LicenseInformation-Klasse 367

ExpirationDate-Eigenschaft 373 IsActive-Eigenschaft 373 IsTrial-Eigenschaft 373 LicenseChanged-Event 372

Light-Schlüsselwort 85 LinearDoubleKeyFrame-Klasse 157 Lineare Keyframes 157 LinearGradientBrush-Klasse 112, 151, 152

Offset-Eigenschaft 152

Line-Klasse 150 X1-Eigenschaft 150 Y1-Eigenschaft 150 Y2-Eigenschaft 150

ListBox-Control 22 ListBoxItem-Klasse 125, 127, 188 ListBox-Klasse 123, 128, 187

SelectedItems-Eigenschaft 128 SelectionMode-Eigenschaft 128

Listenelemente 69 Listenoperationen 124 Listensteuerelemente 123

Basisfunktionen 124 Binden von ComboBox-Controls 192 Darstellung von Listenelementen anpassen 126 Daten und Darstellung von Elementen trennen 127 Datengebundene Listen 126 Drag & Drop implementieren 130 Layout verändern 128 Listenbindungen 186 Listendarstellung mit Data Templates anpassen 188 Listensteuerung mit ICollectionView und

CollectionViewSource 197 Selektion auswerten 125 Semantic Zoom implementieren 201 Umgang mit Listenelementen 125 Vererbungshierarchie 124

ListingInformation-Klasse FormattedPrice-Eigenschaft 374

ListViewBase-Klasse 124, 130 ListView-Control 21 ListViewItem-Klasse 127, 190 ListView-Klasse 124, 129, 204

AllowDrop-Eigenschaft 130 CanDragItems-Eigenschaft 130 CanReorderItems-Eigenschaft 130 DragItemsStarting-Event 131 IsItemClickEnabled-Eigenschaft 133 IsSwipeEnabled-Eigenschaft 133 ItemClick-Event 133 SelectionMode-Eigenschaft 133 Selektion steuern 133

Live Messenger 324 Live Services 324 Live Tiles 25, 254 Live-ID 295, 328, 342, 355 siehe Microsoft-Konto Lizenzen erwerben 370 Lizenzierung 374 Lizenzmodelle 366 Lizenzstatus 373 local-Schlüsselwort 287

388 Stichwortverzeichnis

Location 54, 56 Lock Screen 274 Logo 254 Logo der App 81 Lokalisierte Apps erstellen 235 Lokalisierung 107, 336 Lokalisierungsprobleme 239 Lookup-Mechanismus 241 loop-Attribut 282 Low-Level-Kommunikation 324

M

MakeAppx.exe 330 Manifestdatei 235 Manuelle Installation 330 Markup 66 Markup Extensions 70 Master- und Detailseite 20 Matrix 20 Matrix3DProjection-Klasse 165 MatrixTransform-Klasse 164 Maus 21 Mausverarbeitung 42 Mauszeiger 43 MaxTransferSizeInMegabytes-Eigenschaft 335 MediaElement-Klasse 135

AutoPlay-Eigenschaft 136 BufferingProgressChanged-Event 136 BufferingProgress-Event 136 CanSeek-Eigenschaft 136 DownloadProgressChanged-Event 136 DownloadProgress-Event 136 DownloadProgressOffset-Event 136 IsMuted-Eigenschaft 137 MediaOpened-Event 136 Mute()-Methode 137 Pause()-Methode 136 Play()-Methode 136 Position-Eigenschaft 136 PosterSource-Eigenschaft 136 SeekCompleted-Event 136 Source-Eigenschaft 135 Stop()-Methode 136 VolumeChanged-Event 137 Volume-Eigenschaft 137

Medientyp 265 Medientypen 320 Mehrfachauswahl 133 MemoryStream-Klasse 312, 320

Merged Dictionaries 84 MessageDialog-Klasse 221, 222, 223

CancelCommandIndex-Eigenschaft 223 Commands-Eigenschaft 223 DefaultCommandIndex-Eigenschaft 223 ShowAsync()-Methode 222

Messenger 282 Metadaten 27, 290, 336, 354 Metadatenadapter 29 Metadatenbindung in .NET 29 Methodenüberladungen 251 Microsoft-Designstil 19 Microsoft-Konto 33 Mikrofon 54 MIME-Typ siehe Medientyp Mindestauflösung 361 Miniaturbilder 224 Mobilfunkkosten 335 Model 239 MP3-Format 135 MPEG-2-Format 135 MPEG-4-Format 135 ms-appdata-Syntax 78, 280 ms-appdata-URI-Format 287 ms-appx-Syntax 78, 261, 280 ms-resource-Syntax 78 ms-winsoundevent-Syntax 281 Multilingual App Toolkit für Visual Studio 238 Multimedia-Controls 134 Multiple Transformation 164 Musikbibliothek 55 MVVM-Pattern 239

N

Nachrichtenencodierungen 322 Näherung 55 Natürlich wirkende Animationen durch Easing-

Funktionen 158 NavigatingCancelEventArgs-Klasse 45

Cancel-Eigenschaft 45 Navigation abbrechen 45 Navigation auf Seitenebene 46 NavigationEventArgs-Klasse

NavigationMode-Eigenschaft 44 Parameter-Eigenschaft 44 SourcePageType-Eigenschaft 44

NavigationEventArgs-Klasse 44 Navigationshistorie 46

Stichwortverzeichnis 389

Near Field Communication 55 Negotiate-Authentifizierung 322 NetHttpBinding-Klasse 322 NetTcpBinding-Klasse 322 NetworkChange-Event 309 NetworkChange-Klasse NetworkAddressChanged-Event 309 NetworkInformation-Klasse GetConnectionProfiles()-Methode 309 NetworkInterface-Klasse 309 GetIsNetworkAvailable()-Methode 309 Netzwerkbenachrichtigung 309 Netzwerkinformationen analysieren 309 Netzwerkprofile 309 Netzwerkprotokolle 324 Netzwerkstatus 309 Netzwerkverbindung 309 Neustart der App 316 NFC siehe Near Field Communication Notification.Default 282 Notification.IM 282 Notification.Looping.Alarm 282 Notification.Looping.Call 282 Notification.Mail 282 Notification.Reminder 282 Notification.SMS 282 NTLM 353 Ntlm-Authentifizierung 322 Nutzdaten 297 Nutzung von Apps 366

O

Oberflächenelemente transformieren 161 ObjectAnimationUsingKeyFrames-Klasse 155, 211 ObservableCollection<T>-Klasse 196 One Way Binding 178 OnNavigatedTo()-Methode 316 On-Screen-Tastatur 120 Open Packaging Conventions 326 OpenType-Schriftarten 114 Overlay-Fenster 224 Overload-Attribut 251

P

package.appxmanifest 254 Package.appxmanifest 53, 57, 61, 288, 293, 369 Package-ID 293 Package-Klasse 286 Current-Eigenschaft 286

InstalledLocation-Eigenschaft 286

Page Caching 48 Page-Klasse 40, 43, 46, 48, 73, 83, 141, 210

BottomAppBar-Eigenschaft 141 Frame-Eigenschaft 43 NavigationCacheMode-Eigenschaft 48 OnNavigatedFrom()-Methode 47 OnNavigatedTo()-Methode 46 OnNavigatingFrom()-Methode 47 SizeChanged-Event 210 SizeChanged-Event 212 TopAppBar-Eigenschaft 141

Paketdatei 251 Paketname 369 Panel-Klasse 73, 92

ArrangeOverride()-Methode 92 Children-Eigenschaft 73, 92 MeasureOverride()-Methode 92

PasswordBox-Klasse 119 PasswordVault-Klasse 297 Passwörter 297 PathFigure-Klasse 150 Path-Klasse 150 PathSegment-Klasse 150 PC-Einstellungen 257, 275, 296 PCI-Datensicherheitsstandard 335 PEGI 335 Performance Counter 31 PeriodicUpdateRecurrence-Enumeration 263 PickerLocationId-Enumeration 224 Pinchgeste 104, 202 Pinsel 113, 151 Pixelbasiertes Layout 99 Pixeloperationen 81 PlaneProjection anwenden 165 PlaneProjection-Klasse 165

CenterOfRotationX-Eigenschaft 166 CenterOfRotationY-Eigenschaft 166 CenterOfRotationZ-Eigenschaft 166 GlobalOffsetX-Eigenschaft 167 GlobalOffsetY-Eigenschaft 167 GlobalOffsetZ-Eigenschaft 167 LocalOffsetX-Eigenschaft 167 LocalOffsetY-Eigenschaft 167 LocalOffsetZ-Eigenschaft 167 RotationX-Eigenschaft 166 RotationY-Eigenschaft 166 RotationZ-Eigenschaft 166

PNG-Format 134, 274 PointAnimation-Klasse 155 Polygon-Klasse 150

Points-Eigenschaft 150

390 Stichwortverzeichnis

Polyline-Klasse 150 Polymorphismus 251 Pooling-Verfahren 266 Popup 273 Popup-Fenster 277 Popup-Klasse

Closed-Event 304 Portierung auf eine andere, XAML-basierte Plattform

239 Positionierung von Elementen beeinflussen 105 Postalische Adresse ermitteln 55 POST-Operation 268, 310, 318 PowerEase-Klasse 159 PowerShell 330 Preisgestaltung 366 Preisspanne einer App angeben 348 Primärschlüssel 321 Private Netzwerke 308 Private Netzwerke (Client und Server) 55 Probeausgabe 365 ProductLicense-Klasse 369

ExpirationDate-Eigenschaft 370 IsActive-Eigenschaft 369

ProductListing-Klasse FormattedPrice-Eigenschaft 370 Name-Eigenschaft 370

Produktdaten 370 Produkt-ID 371 Produktlebensdauer 366 Programmiersprachen 26 Progress<DownloadOperation>-Klasse 313 ProgressBar-Klasse 139

IsActive-Eigenschaft 140 IsIndeterminate-Eigenschaft 139 Maximum-Eigenschaft 139 Minimum-Eigenschaft 139 ShowError-Eigenschaft 140 ShowPaused-Eigenschaft 140 Value-Eigenschaft 139

ProgressRing-Klasse 139 IsActive-Eigenschaft 140 IsIndeterminate-Eigenschaft 139 Maximum-Eigenschaft 139 Minimum-Eigenschaft 139 ShowError-Eigenschaft 140 ShowPaused-Eigenschaft 140 Value-Eigenschaft 139

Projection Layer 27 Projektaufbau 33 Projekteigenschaften 53 Projektion 27

Projektion von .NET-Sprachen 29 Projektionen 165 Projektionen mit Animation kombinieren 167 Projektvorlagen siehe Visual Studio Promotional Images der App 82 Property Elements 68 Property Element-Syntax 68 Property Wrapper 217 PropertyMetadata-Klasse 217 Protokoll 58 Proxy-Generator 322 Proxyklassen 322 Prozessorarchitektur 359 Prozessortypen 333 Prüfbericht 341 Prüflauf 340 Pseudo-3D 165 Pseudosprache 239 Public-Key-Verfahren 353 Push Notification Channel 266 Pushbenachrichtigung 275 Pushbenachrichtigungen 351 Push-Benachrichtigungen 324 Push-Benachrichtigungen vom Server versenden 268 PushNotificationChannel-Klasse 267

Uri-Eigenschaft 267 PushNotificationChannelManager-Klasse 267

CreatePushNotificationChannelForApplication-Async()-Methode 267

Push-Verfahren 266 PUT-Operation 310, 318

Q

QuadraticEase-Klasse 159 QuarticEase-Klasse 159 Querladen siehe Sideloading QuinticEase-Klasse 159 Quittung für In-App-Verkäufe 371

R

RadioButton-Klasse 114 Checked-Event 114 IsChecked-Eigenschaft 114

RandomAccessStreamReference OpenReadAsync()-Methode 232

RandomAccessStreamReference-Klasse 231 CreateFromFile()-Methode 231 CreateFromUri()-Methode 231

Stichwortverzeichnis 391

Rasteranwendung 215 Raster-App 46, 52, 243 Raster-App (XAML) 32 RCW siehe Runtime Callable Wrapper readonly-Schlüsselwort 216 Really Simple Syndication 324 Rechtschreibprüfung aktivieren 122 Rectangle-Klasse 139, 150

Height-Eigenschaft 150 Width-Eigenschaft 150

Reference Counting 29 Reference.cs-Datei 322 Regeln für die Nutzung von WNS 270 Regeln für die Zertifizierung 332 Registry 333 Release-Modus 338 ReorderThemeTransition-Klasse 161 RepeatButton-Klasse 115

Click-Event 115 RepositionThemeTransition-Klasse 161 Representational State Transfer 317 RequestedOperation-Eigenschaft 232 Resource Dictionaries 76, 147, 176, 189 Resource Lookup-Mechanismus 88 ResourceDictionary-Klasse 84

MergedDictionaries-Eigenschaft 84 ThemeDictionaries-Eigenschaft 86 TryGetValue()-Methode 87

ResourceLoader-Klasse 237 GetString()-Methode 237

Resources-Verzeichnis 236 Ressourcen 75

per XAML referenzieren 77 Ressourcendatei 236 Ressourcenschlüssel 237 Ressourcensystem 235 Ressourcenwörterbücher 84 REST-basierte Services 310 REST-Modell 317 Resuming-Event 50 resw-Dateien 236 RichEditBox-Klasse 119 RichTextBlock-Klasse 116

Clip-Eigenschaft 118 LineHeight-Eigenschaft 118 LineStackingStrategy-Eigenschaft 118 OverflowContentTarget-Eigenschaft 116

RichTextBlockOverflow-Klasse 116 Richtlinien für das Roaming von Anwendungsdaten

297 Roaming 286

Roaming-Daten 295 roaming-Schlüsselwort 287 Roaming-Verzeichnis 295 RotateTransform-Klasse 162

Angle-Eigenschaft 162 Routed Events 71 RowDefinition-Klasse

Height-Eigenschaft 95 RSS siehe Really Simple Syndication RSS-Feeds 324 RTF-Format 230 Rückwärtsnavigation 47 Runtime Broker 30, 55 Runtime Callable Wrapper 29

S

scale-Schlüsselwort 79 ScaleTransform-Klasse 162, 163

ScaleX-Eigenschaft 163 ScaleY-Eigenschaft 163

ScheduledTileNotification-Klasse 263 DeliveryTime-Eigenschaft 263 Id-Eigenschaft 263

ScheduledToastNotification-Klasse 283 Schreiben in eine Datei 291 Schreiboperationen 287 Schrifteigenschaften der App 83 Schriftgrößen 107 Screenshots 332, 336, 337, 360 Screenshots der App 82 Scrollbars 102 Scrollen 102 Scrollrichtung festlegen 102 Scrollverhalten 102 ScrollViewer-Klasse 102

HorizontalScrollBarVisibility-Eigenschaft 102 HorizontalScrollMode-Eigenschaft 102 HorizontalSnapPointsType-Eigenschaft 104 IsHorizontalRailEnabled-Eigenschaft 103 IsVerticalRailEnabled-Eigenschaft 103 MaxZoomFactor-Eigenschaft 104 MinZoomFactor-Eigenschaft 104 ScrollToHorizontalOffset()-Methode 105 ScrollToVerticalOffset()-Methode 105 VerticalScrollBarVisibility-Eigenschaft 102 VerticalScrollMode-Eigenschaft 102 VerticalSnapPointsAlignment-Eigenschaft 104 VerticalSnapPointsType-Eigenschaft 104 ZoomMode-Eigenschaft 104 ZoomToFactor()-Methode 105

392 Stichwortverzeichnis

sealed-Schlüsselwort 250 SearchActivatedEventArgs-Klasse 62

QueryText-Eigenschaft 62 Search-Contract 61 SearchPane-Klasse 63

GetForCurrentView()-Methode 63 OnSuggestionsRequested-Event 63

Secondary Tiles 25, 272 finden und entfernen 277

SecondaryTile-Klasse 272, 274, 277 Exists()-Methode 273 FindAllAsync()-Methode 277 FindAllForPackageAsync()-Methode 277 LockScreenBadgeLogo-Eigenschaft 274 LockScreenDisplayBadgeAndTileText-Eigenschaft

274 RequestCreateAsync()-Methode 273 RequestCreateForSelectionAsync()-Methode 273 RequestDeleteAsync()-Methode 277

Secure Sockets Layer 353 Security Identifier 266 Segoe UI Symbol-Font 143 Seitenlayout 215 Sekundäre Kacheln 25, 272 SelectionChangedEventArgs-Klasse 125

AddedItems-Eigenschaft 125 RemovedItems-Eigenschaft 125

Selector-Klasse 124 Semantic Zoom 20, 124 Semantic Zoom implementieren 201 Semantic Zoom steuern 206 SemanticZoom-Klasse 206

CanChangeViews-Eigenschaft 206 IsZoomedInViewActive-Eigenschaft 206 IsZoomOutButtonEnabled-Eigenschaft 206 ViewChangeCompleted-Event 206 ViewChangeStarted-Event 206

SemanticZoom-Klasse 202 Separation von Programmteilen 240 Serialisieren von Objekten 132 Serialisierungklassen 322 Service-Endpunkt 323 Serviceimplementierung 322 Serviceoperationen 318 Service-Proxy 322 Servicereferenz 323 Settings siehe Einstellungen settings.dat-Datei 293 SettingsCommand-Klasse 300 SettingsPaneCommandsRequestedEventArgs-Klasse

301

SettingsPane-Klasse 301 CommandsRequested-Event 301

SetVersionDeferral-Klasse 299 SetVersionRequest-Klasse 299

Complete()-Methode 299 GetDeferral()-Methode 299

Shape-Klasse Fill-Eigenschaft 151 Stroke-Eigenschaft 151 StrokeThickness-Eigenschaft 151

Shapes 150 Share-Contract 58 Sicherheit 335 Sicherheitsmodelle 322 Sicherheitsrelevante APIs 30 SID siehe Security Identifier Sideloading 327 silent-Attribut 282 Silverlight 66 Simulator 22, 121, 338, 362 SineEase-Klasse 159 Skalierung von Bildern 79, 134 SkewTransform-Klasse 162

AngleX-Eigenschaft 163 AngleY-Eigenschaft 163

SkyDrive 23, 297, 324 SkyDrive SDK 25 Small Logo der App 81 Smart Card 55 Smartcard-Zertifikate 308 SMS 282 Snapped-Modus 23, 42, 60, 208, 334, 337 Snapping 103 SOAP-basierte Services 322 SOAP-Protokoll 317 Socketbasierte Kommunikation 324 Sofortnachricht 282 SolidColorBrush-Klasse 151

Color-Eigenschaft 151 Speicherlimit von Roamingdaten 297 Speichern des aktuellen Zustands 50 Speichern von Daten 292 Speicherort (Location) 54, 56 Speicherverbrauch 16, 310 Speicherverwaltung 16 Spiel-Explorer 58 Splash Screen der App 81 SplineDoubleKeyFrame-Klasse 157 Spline-Keyframes 157 Sprachen 235 Sprachen unterstützen 336

Stichwortverzeichnis 393

Sprachversion 337 Sprachverzeichnisse 80, 237 SSL siehe Secure Sockets Layer SslStreamSecurity 322 StackPanel-Klasse 92

Orientation-Eigenschaft 92 StandardDataFormats-Enumeration 231 Standard-Fingereingabemodus 122 Standardsprache 235 StandardStyles.xaml 34 StandardStyles.xaml-Datei 85, 141 Standardverzeichnisse 288 Startbildschirm 254, 274 Startparameter einer App 272 States 208 StaticResource-Markup Extension 70, 83 Status der App in Visual Studio steuern 51 Status der App speichern 292 Statusinformationen über Badges anzeigen 270 Stopppunkte eines Farbverlaufs 113 StorageApplicationPermissions-Klasse 290

Entries-Eigenschaft 290 FutureAccessList-Eigenschaft 290

StorageFile-Klasse 78, 225, 227, 287, 290, 291 GetFileFromApplicationUriAsync()-Methode 78 OpenAsync()-Methode 78, 290, 291

StorageFolder-Klasse 286, 290, 291 CreateFileAsync()-Methode 291 GetFileAsync()-Methode 290 GetFileFromApplicationUriAsync()-Methode 286

StorageItemAccessList-Klasse 290 Add()-Methode 290 GetFileAsync()-Methode 290 Remove()-Methode 290

StorageItem-Klasse 232 StorageItemTypes-Klasse 233 Store Logo der App 81 Store-Business-Bereich 343 Store-Richtlinien 334 Storyboard-Klasse 155, 211

Begin() 156 BeginTime-Eigenschaft 157 Completed-Event 156 Duration-Eigenschaft 211 GetCurrentState()-Methode 156 Pause()-Methode 156 Resume()-Methode 156 Seek()-Methode 156 SeekAlignedToLastTick()-Methode 156

SkipToFill()-Methode 156 TargetName-Eigenschaft 155, 211 TargetProperty-Eigenschaft 155, 211 To-Eigenschaft 211

StreamedRequest-Übertragungsart 322 StreamedResponse-Übertragungsart 322 Streamed-Übertragungsart 322 Stream-Klasse 292, 320 StringContent-Klasse 320 StringFormat-Eigenschaft 182 Strings-Ordner 236 Style definieren 88 Style-Klasse 89, 127

BasedOn-Eigenschaft 89 TargetType-Eigenschaft 89

Styles 88 Suchen 58 Suchen-Contract 61 Suchfunktionalität 24 Suggestions 63 Support 363, 365 Support für Apps 336 Supportkontaktinformationen 336 Surface 15, 328 Surface Pro 15 Suspending 297 Suspending-Event 50 Suspension 48 SuspensionManager-Klasse 46, 52

SessionStateForFrame()-Methode 53 SVG 66 Swipe 22 Swipe-Geste 133 Synchronisation 178 Synchronisation von Einstellungen 295 Synchronisationseinstellungen konfigurieren 295 Synchronisationsoptionen 296 System.ComponentModel-Namespace 178 System.Diagnostics-System.Diagnostics-Namespace 31 System.Net.Http-Namespace 310 System.Net.NetworkInformation-Namespace 309 System.Net-Namespace 310 System.Runtime.CompilerServices-Namespace 179 System.Runtime.Serialization.Json-Namespace 319 System.Runtime.Serialization-Namespace 319 Systemdaten 295 Systemdialoge 221 Systemeinstellungen 295 Systemvoraussetzungen 350 Systemzugriff 29

394 Stichwortverzeichnis

T

Tap 22 Task<T>-Klasse 323 TaskCanceledException-Klasse 315 Task-Klasse 316, 323

WhenAll()-Methode 316 Tastatur 21 Tastaturverarbeitung 42 TCP-basierte Kommunikation 324 TcpTransport 322 Teilen (Share) 59 Teilen persönlicher Informationen 334 template-Attribut 256 TemplateBinding-Markup Extension 147 Template-Bindungen 147 temporary-Schlüsselwort 287 Testbarkeit 239, 246 Testergebnisse 340 Testklassen 240 Testphase 365 Testversionen 332 Textanzeigesteuerelemente 116

Text auf mehrere Blöcke verteilen 116 Umbruch festlegen 116 Zeichenbreite verändern 117 Zeilenhöhe konfigurieren 118

TextBlock-Klasse 116 CharacterSpacing-Eigenschaft 117 Clip-Eigenschaft 118 LineHeight-Eigenschaft 118 LineStackingStrategy-Eigenschaft 118 TextWrapping-Eigenschaft 116

TextBox-Klasse 119 InputScope-Eigenschaft 119 IsSpellCheckEnabled-Eigenschaft 122 IsTextPredictionEnabled-Eigenschaft 123

Texteingaben 119 als E-Mail-Adresse kennzeichnen 119 als Nummer kennzeichnen 119 als Suchanfrage kennzeichnen 119 als Telefonnummer kennzeichnen 119 als Uri kennzeichnen 119 Eingabemodus bestimmen 119 Rechtschreibprüfung aktivieren 122 Wortvervollständigung unterstützen 123

TextMessageEncoding 322 Textumbrüche in Texten 116 Theme Dictionaries 85 Theme-Animationen 154, 159 themeresources.xaml-Datei 85, 86

Themes 84 Themespezifische Ressourcen 86 Thickness-Struktur 108, 112 Threadsynchronisation 309 TIFF-Format 134 TileNotification-Klasse 256

ExpirationTime-Eigenschaft 262 Tag-Eigenschaft 262

Tiles siehe Kachel TileUpdateManager-Klasse 256, 276

CreateTileUpdaterForApplication()-Methode 256 GetTemplateContent()-Methode 256

TileUpdater-Klasse 256, 265, 266 AddToSchedule()-Methode 263 Clear()-Methode 262 CreateTileUpdaterForSecondaryTile()-Methode 276 EnableNotificationQueue()-Methode 262 NotificationSetting-Klasse 257 RemoveFromSchedule()-Methode 263 StartPeriodicUpdate()-Methode 263, 265 StartPeriodicUpdateBatch()-Methode 265 StopPeriodicUpdate()-Methode 266 Update()-Methode 256

Tile-Vorlage auswählen 257 Timeline-Klasse 155

AutoReverse-Eigenschaft 156 BeginTime-Eigenschaft 156 FillBehavior-Eigenschaft 156 RepeatBehavior-Eigenschaft 156 SpeedRatio-Eigenschaft 156

TimeSpan-Struktur 136 TLS siehe Transport Layer Security Toast-Benachrichtigungen 277 toast-Element 278 ToastFailedEventArgs-Klasse 281

ErrorCode-Eigenschaft 281 ToastNotification-Klasse 280

Activated-Event 281 Dismissed-Event 281 ExpirationTime-Eigenschaft 280 Failed-Event 281

ToastNotificationManager-Klasse 280 CreateToastNotifier()-Methode 280

ToastNotifier-Klasse 280, 283 AddToSchedule()-Methode 283 GetScheduledToastNotifications()-Methode 283 RemoveFromSchedule()-Methode 283 Show()-Methode 280

Toasts Anzeigedauer steuern 280 auf Fehler reagieren 281

Stichwortverzeichnis 395

Toasts (Fortsetzung) Ein- und Ausblenden 281 löschen 283 Startparameter festlegen 283 zeitgesteuert anzeigen 283

Toast-Vorlagen 278 ToggleButton-Klasse 114

IsChecked-Eigenschaft 114 ToggleSwitch-Control 22 ToggleSwitch-Klasse 115

OffContent-Eigenschaft 115 OnContent-Eigenschaft 115

Token 268, 366 Touchbedienung 21 Touch-Eingabe 122, 124 Touchfunktionalität 124 Touchgesten 21, 102, 124, 129, 133, 201 Touchmodus 122 Touch-Verarbeitung 42 Touchverhalten 103 TPX-Format 238 Transaktionsanbieter 335 Transformation 161

Elemente kippen 163 Elemente rotieren 162 Elemente skalieren 163 Elemente verschieben 163 Multiple Transformation 164

TransformGroup-Klasse 164 Transform-Klasse 162 Transition-Animationen 154, 160 TranslateTransform-Klasse 162, 163

X-Eigenschaft 163 Y-Eigenschaft 163

Transport 322 Transport Layer Security 353 TransportCredentialOnly 322 TransportSecurity 322 TransportWithMessageCredential 322 Trennung von Oberfläche und Logik 239 Trial-Version erstellen 373 Trial-Version testen 374 TypeName-Klasse 43

U

UAC siehe User Access Control Übergabeparameter auf der Zielseite auswerten 44 Übersetzungsprogramme 238 Übersetzungsprozess 238 Übersetzungsressourcen 236 Übertragung von Daten 335

Übertragungsarten 322 UDP-basierte Kommunikation 324 UICommandInvokedHandler-Klasse 223, 301 UICommand-Klasse 223 Uid-Markup Extension 237 UIElement-Klasse 72, 87, 105, 162, 165

ActualHeight-Eigenschaft 110 ActualWidth-Eigenschaft 110 AddHandler()-Methode 72 DesiredSize-Eigenschaft 110 DragEnter-Event 132 DragLeave-Event 132 DragOver-Event 132 Opacity-Eigenschaft 106 Projection-Eigenschaft 165 RenderSize-Eigenschaft 110 RenderTransform-Eigenschaft 162, 164 RenderTransformOrigin-Eigenschaft 162 Visibility-Eigenschaft 106

UI-Elementkombinationen 215 UI-Paradigmen 337 Umgang mit ComboBox-Controls 192 UMTS 316 UnauthorizedAccessException-Klasse 56 Uniform Resource Identifier 67, 231 Unit Test 246 Unternehmensauthentifizierung 54, 308 Updates 333, 336, 361 Uploads 335 URI siehe Uniform Resource Identifier Uri-Eigenschaft 267 Uri-Klasse 263, 313, 318 Usability 24, 143 User Access Control 331 User Controls 215, 218 UserControl 302 UserControl-Klasse 73 using-Schlüsselwort (XAML) 68 UTF8 265, 320

V

Value Converter 172, 182 VariableSizedWrapGrid-Klasse 93, 97

HorizontalChildrenAlignment-Eigenschaft 98 ItemHeight-Eigenschaft 98 ItemWidth-Eigenschaft 98 MaximumRowsOrColumns-Eigenschaft 97 Orientation-Eigenschaft 98 VerticalChildrenAlignment-Eigenschaft 98

Vererbung 251 Verhaltensweise der App 333

396 Stichwortverzeichnis

Verifizieren von Apps 338 Verkaufsdetails einer App 348 Verkaufsprozess 336 Verknüpfung in die Zwischenablage kopieren 232 Veröffentlichung von Apps 326 Veröffentlichungsdatum einer App 349 Verpacken 35 Versionsinfos überprüfen 365 Verweise

in der Zwischenablage hinterlegen 234 Verzeichnis auswählen 226 Videobibliothek 55 Videos wiedergaben 135 Videostreams 335 View 239 Viewbox-Klasse 101

StretchDirection-Eigenschaft 102 Stretch-Eigenschaft 101

ViewModel 239 Virtualisierung 124 Visibility-Enumeration 106 Visual States 212, 246 Visual Studio

App mit Store verknüpfen 354 App-Paket hochladen 358 Express-Version 14, 318, 338 Multilingual App Toolkit 238 Projektvorlagen 46, 215, 243, 248, 254, 338 Windows App Certification Kit 338

Visual Studio-Projektvorlagen 31 VisualStateManager-Klasse 156, 211, 247

GoToState()-Methode 212, 247 Vollversion aus der App heraus erwerben 375 Vollversionen 365

W

WACK siehe Windows App Certification Kit Währung 370 Wartbarkeit 239 Warteschlangen für Benachrichtigungen 262 WAV-Format 135 WCF siehe Windows Communication Foundation Webcam 55 WebHostHidden-Attribut 250 Webinhalte einbinden 137 Webservice 263, 317, 322 WebSockets 324 WebUtility-Klasse 311

HtmlDecode()-Methode 311 HtmlEncode()-Methode 311

UrlDecode()-Methode 311 UrlDecodeToBytes()-Methode 311 UrlEncode()-Methode 311 UrlEncodeToBytes()-Methode 311

WebViewBrush-Klasse 139 WebViewBrush-KlasseRedraw()-Methode 139 WebViewBrush-KlasseSourceName-Eigenschaft 139 WebView-Klasse 137

AllowedScriptNotifyUris-Eigenschaft 138 InvokeScript()-Methode 137 LoadCompleted-Event 137 Navigate()-Methode 137 NavigateToString()-Methode 137 Source-Eigenschaft 137

Wechselspeichergeräte 55 Werbeplatzierung 375 Werbung 332, 333, 365, 375 Wiederherstellen des gespeicherten Zustands 51 Win32-API 15, 333 Window-Klasse 40, 42

Activate()-Methode 41, 42 Activated-Event 42, 304 Bounds-Eigenschaft 42 Content-Eigenschaft 41, 42 CoreWindow-Eigenschaft 42 Dispatcher-Eigenschaft 42 SizeChanged-Event 42, 303 VisibilityChanged-Event 42 Visible-Eigenschaft 42

Windows 8 SDK 330 Windows 8-Endgeräte 295 Windows App Certification Kit 338 Windows Azure Mobile Services 324 Windows Communication Foundation 31, 264, 308 Windows Designsprache 17 Windows Live-Dienste 324 Windows Live-ID siehe Microsoft-Konto Windows Phone 66 Windows Presentation Foundation 31, 66 Windows Push Notification Service 266, 335 Windows Push Notification Service konfigurieren 350 Windows RT 15 Windows Runtime 15, 26 Windows Runtime-Komponente 248 Windows Store 266, 326, 335, 371 Windows Store-API 335 Windows Store-Apps

Design-Guidelines 19 Windows Store-Projekt 33 Windows Workflow Foundation 66 Windows.ApplicationModel.DataTransfer-Namespace

59

Stichwortverzeichnis 397

Windows.ApplicationModel.Resources-Namespace 237 Windows.ApplicationModel-Namespace 286 Windows.Foundation.Collections-Namespace 196 Windows.Networking.BackgroundTransfer-Namespace

313 Windows.Networking.Connectivity-Namespace 309 Windows.Security.Credentials-Namespace 297 Windows.Storage-Namespace 294 Windows.UI.ApplicationSettings-Namespace 301 Windows.UI.Popups-Namespace 222 Windows.UI.Xaml.Controls-Namespace 141 Windows.UI.Xaml.Data-Namespace 172 Windows.UI.Xaml-Namespace.Media.Animation 155 Windows.Web.AtomPub-Namespace 324 Windows.Web.Syndication-Namespace 324 Windows-Authentifizierung 322 Windows-Designsprache 337 Windows-Domäne 308 Windows-Explorer 232 Windows-Infrastruktur 337 Windows-Kontrastmodus 79 Windows-Metadatendatei 251 Windows-Ökosystem 333 Windows-Runtime 333, 334 Windows-Runtime-Komponente 251 WindowsStoreProxy-Datei 367 WindowsStoreProxy-Datei finden 369 WindowsStreamSecurity 322 Windows-Suche 57 WINMD siehe Windows-Metadatendatei WinRT 26 WinRT-Komponenten 27 W-LAN-Adapter 309 WLAN-Router 55 WMI 31 WNS siehe Windows Push Notification Service WNS-Typ 268 WrapGrid-Klasse 128, 206 WS-Discovery-Protokoll 322 WsHttpBinding-Bindung 322

X

X2-Eigenschaft 150 x64-Prozessorarchitektur 15 x86-Prozessorarchitektur 15 XAML 66 XAML Markup Extension 127 XAML Markup Extensions 70

XAML-basierte Anwendungen 241 XAML-Basisklassen 105 XAML-Designer 80 XAML-Dokument 67 XAML-Elemente miteinander verbinden 173 XAML-Elementsyntax 88 XAML-Klassenmodell 71 XAML-Namespaces 67 XAML-Objektmapping 66 XAML-Parser 69 XLIFF-Format 238 XML 256 XML-Datei 340 XmlDocument-Klasse 256, 280 XmlObjectSerializer-Klasse 319 XmlSerializer-Klasse 322 XML-Struktur 255 X-WNS-Expires-Kennzeichen 265 X-WNS-Tag-Kennzeichen 265

Z

Zeitgesteuerte Toasts 283 Zeitungen 365 Zertifikate 58, 331, 343 Zertifizieren von Apps 332 Zertifizierung 335 Zertifizierungsprozess 53, 251, 326, 337 Zertifizierungsstatus 365 Zielfreigabe 58 Zielfreigabe (Share) 58 Zielgruppe 375 ZoomedInView-Eigenschaft 202 ZoomedOutView-Eigenschaft 202 Zugriff auf die Standardverzeichnisse 288 Zugriff auf lokalisierte Ressourcen 237 Zugriff auf Verzeichnisse 287 Zugriffsmodus einer Datei 291 Zugriffsprüfung 290 Zur Zertifizierung übermitteln 365 Zusammenhängende Einstellungen 298 Zustände 208 Zustandsänderungen 215 Zwischenablage 229

Verweise hinterlegen 234 Zwischenablageformate 234 Zwischenversionen 332