Index

A

accelerometers, 525

Accelerometer class, 528-529

calibrating, 533-536

shake detection, 537-539

simulating acceleration via emulator, 529-530

smoothing readings, 530-533

accuracy, location aware apps, 560

DesiredAccuracy property, 565

DesiredAccuracyInMeters property, 565

monitoring position changes, 566

MovementThreshold property, 565-566

PositionChanged events, 566-584

StatusChanged events, 567-568

ad hoc testing, 737

Add New Project dialog (Visual Studio Express 2012), 2

Additional Tools window (Windows Phone Emulator), 4

AddressChooserTask, choosers/launchers and, 447-449

A-GPS (Assisted Global Positioning System), location aware apps and, 560-561

alarms (scheduled notifications)

registering, 1001

sample code, 1002-1004

animation/graphics

live tiles, 391

page orientation

animating entire pages when orientation changes, 108-110

animating page elements when orientation changes, 106-107

page transitions, 110-114

XAML

composition thread, 18-20

UI thread, 18-20

App Instant Answer, 996

App List (Windows Phone Emulator), 6

App.RootFrame_Navigated method (Fast App Resume), 60-61

App.RootFrame_Navigating method (Fast App Resume), 59-61

Application Analysis tool, 21, 26

CPU Usage Graph, 25

execution profiling, 21-23

External Events view, 25

Frame Rate Graph, 25

GC Events, 26

Image Loads, 26

launching, 21-23

Memory Usage MB Graph, 26

performance metrics, viewing, 24

Performance Warnings view, 26-27

Storyboards, 26

application bar, 231, 252

built-in application bar, 231-233

customizing colors, 234

expanding, 233

hiding, 233

icon buttons, 234-236

menu items, 234-237

minimizing Icon Button Tray, 234

system tray dimensions, 234

custom application bar, 237

AppBar control, 248-252

customizing colors, 246-247

customizing system tray, 247-248

disabling application bar menu, 242-243

extending icon base classes, 250-252

extending menu item base classes, 250-252

icon buttons, 237-238

item visibility, 250

menu items, 237-238

minimizing Icon Button Tray, 243

opacity, 244

sample code, 238-242

switching to full-screen, 244-246

multiple applications bars, hosting via Pivot control, 333-343

Application class, 7-8

Application Deployment tool, 15

application state, 49

persistent state, 56, 97

transient state, 97

requirements, 54-55

restoring, 55

saving, 53-54

ApplicationCurrentMemoryUsage property (Device Status class), 28

ApplicationMemoryUsageLimit property (DeviceStatus class), 27-29

ApplicationPeakMemoryUsage property (DeviceStatus class), 28

appointments, 464

retrieving, 478-483

saving, 483-484

apps

animated page transitions, 110-114

Application class, 7-8

auto-launching via

file associations, 968-975

protocol associations, 977-981

Windows.System.Launcher class, 981

background file transfers, 1043

app termination/resubscription to transfer events, 1048

sample code, 1048-1049

transfer requests, 1043-1047

background processing, 997

background tasks, 998

battery life and, 997

multitasking and, 997

Mutex and shared resources, 1038-1041

scheduled notifications, 998-1010

scheduled tasks, 1010-1038

ScheduledTaskAgent, 1011-1012

Bookshop sample app, 83

design-time data, 92-93

displaying product lists, 86-92

image caching, 93-95

ProductsView class, 85-86

ProductsViewModel class, 84-85

WCF services, 95-97

capabilities

defining, 16

determining via Marketplace Test Kit, 17

ID_CAP_NETWORK capability, 16

ID_HW_FFCCAMERA capability, 16

customizing

MainPage, 6, 9-11

XAML and Windows Phone Emulator, 5-7

deploying via Application Deployment tool, 15

exiting apps programmatically, 53

FAS, 56

Fast App Resume, 56-57, 63

App.RootFrame_Navigated method, 60-61

App.RootFrame_Navigating method, 59-61

FastAppResumeViewModel class, 61-62

launching, 57-59

optimizing, 57

recommended resume behaviors, 58

file associations, 967-968

auto-launching apps via file associations, 968-975

effects on user experience, 976

foreground apps

background file transfers, 1043

multitasking and, 997

Mutex and shared resources, 1038-1041

helium voice app, creating, 692-698

integration testing, 739

launching via voice commands, 723-732

lens apps (cameras), 686-687

app registration, 687-689

icon creation, 689

life cycle of, 49

deactivating events, 52-53

launching events, 50-51

subscribing to events, 51

tombstoning, 52-53

location aware apps, 559

A-GPS and, 560-561

background location tracking, 569-570

cell tower triangulation and, 561-562

DesiredAccuracy property, 565

DesiredAccuracyInMeters property, 565

determining location, 559-562

geographic location API, 563

Geolocator class, 563, 570-575

hardware layer, 563

location simulator, 570-575

location viewer sample code, 575-580

managed layer, 563

monitoring position changes, 566

MovementThreshold property, 565-566

native code layer, 563

PositionChanged events, 566-584

retrieving current location, 563-565

Rx and, 580-584

StatusChanged events, 567-568

Wi-Fi triangulation and, 562

architecture of, 561-562

Maps app

downloading maps, 612

showing directions via, 611

showing locations via, 610-611

Marketplace

allowing app user reviews, 426

launching apps from, 425-426

navigating to apps in, 422-425

memory usage, determining, 27-29

page navigation, 67-69

canceling, 77

cross-page communication, 77-78

handling, 76

hardware Back button, 79-80

navigation history stacks, 72-73

NavigationService property, 75-76

page redirection, 78-79

passing page arguments via query strings, 71-73

unmapped URI, 69-71

URI mapping, 73-74

page orientation

animating entire pages when orientation changes, 108-110

animating page elements when orientation changes, 106-107

PhoneApplicationPage class, 99-104

setting at runtime, 105-106

performance, Windows Phone Marketplace requirements, 21

PhotoCamera app, building, 658-668

thumbnails, viewing, 672-678

video effects, 668-671

protocol associations, 967-968

auto-launching apps via protocol associations, 977-981

effects on user experience, 976

retitling, 6

running under Lock screen, 63-64

LockScreenService class, 64-66

LockScreenViewModel class, 66-67

Rx and, 580-584

search integration, 983

App Instant Answer, 996

application manifests, 985-987

configuring, 985-995

creating landing pages to display quick card information, 994-995

customizing captions, 987-989

defining quick card target page, 989-994

speech-driven apps, 699

launching apps via voice commands, 723-732

speech recognition, 700-723

TTS, 732-735

Voice Paint app creation, 703-721

splash screens, 80-83

state preservation, 47-48

automatic state preservation system build, 890-903

IsolatedStorageSettings class, 889-890

local folder, 881-882

managed storage, 882

.NET Isolated Storage API, 883-886

persistent state, 49, 56, 97

transient state, 49, 53-55, 97

WinPRT Windows Storage API, 883, 887-889

terminating apps, 53

testing via UTF, 739-740

AssemblyCleanup attribute, 746

AssemblyInitialize attribute, 745-746

assertions, 751-752

Asynchronous attribute, 749

asynchronous testing, 762-763

Bug attribute, 749-750

ClassCleanup attribute, 746

ClassInitialize attribute, 746

creating a test project, 740-741, 747

creating test classes, 741-743

Description attribute, 748

ExpectedException attribute, 749

hiding Expressions Editor, 752-753

Ignore attribute, 747-748

metadata, 745-751

Owner attribute, 748-749

Priority attribute, 750

Tag attribute, 749

tag expressions, 743-744

testable chat client app example, 754-764

TestClass attribute, 744

testing multiple assemblies, 753

testing nonpublic members, 753

TestInitialize attribute, 747

TestMethod attribute, 745

TestProperty attribute, 747

Timeout attribute, 748

WorkItemTest class, 751

unit testing, 737-738

WCF services, consuming, 44-45

web content, hosting within apps, 70-71

Windows Phone Application Analysis tool, 21, 26

CPU Usage Graph, 25

execution profiling, 21-23

External Events view, 25

Frame Rate Graph, 25

GC Events, 26

Image Loads, 26

launching, 21-23

Memory Usage MB Graph, 26

Performance Warnings view, 26-27

Storyboards, 26

viewing performance metrics, 24

Windows Phone Marketplace

capability discovery phase, 16-17

submitting apps to, 15-16

WMAppManifest.xml files, defining app capablitites, 16

argument validation, 39-40

assertions (UTF), 751

collection conditions, verifying, 752

CollectionAssert, 752

string conditions, verifying, 752

StringAssert, 752

associations

file associations, 967-968

auto-launching apps via file associations, 968-975

effects on user experience, 976

protocol associations, 967-968

auto-launching apps via protocol associations, 977-981

effects on user experience, 976

asynchronous testing (UTF), 762-763

asynchronous validation, 824

decoupling validation, 830

example of, 836-840

group validation, 844-847

INotifyDataErrorInfo interface, 824, 842-844

provisioning for, 827-830

reusable NotifyDataErrorInfo interface, 825-827

validating all properties, 833-836

validating changing properties, 830-833

ValidationSummary control, adding INotifiyDataErrorInfo support for, 842-844

audio

background audio playback, 1059

audio streaming agents, 1076-1079

AudioPlayerAgent class, 1060, 1064-1075

AudioStreamingAgent class, 1060

AudioTrack class, 1061

BackgroundAudioPlayer class, 1060-1061

controlling playback from foreground app, 1070-1075

creating custom audio player agent, 1061-1064

overview of, 1060

playing assembly resources via MediaStreamSource, 1078-1079

media files, playing, 428-435

microphone, 691

helium voice app, creating, 692-698

recording audio, 691-692

music

deleting from media library, 205-207

saving to media library, 205

playing via MediaElement, 193-194

controlling audio output, 194

sample code, 194-200

streaming content, 194

XNA SoundEffect class, 201-202

ringtones, creating, 461-463

speech-driven apps, 699

launching apps via voice commands, 723-732

speech recognition, 700-723

TTS, 732-735

Voice Paint app creation, 703-721

AudioPlayerAgent class, 1060, 1064-1075

AudioStreamingAgent class, 1060

AudioTrack class, 1061

authentication, cloud services and, 511

AutoCompleteBox component (Toolkit), 259-260

data binding, 270-271

defining custom filters, 264-266

ItemFilter property, 264-266

MVVM and, 260-264

suggested lists

dynamically populating, 266-267

styling, 268-270

auto-launching apps via

file associations, 968

launching files, 973-975

receiving file launch requests, 970-973

registering file associations, 968-970

protocol associations, 977

launching protocol URI, 979-980

receiving protocol launch requests, 977-979

registering protocol associations, 977

reserved protocol names, 981

Windows.System.Launcher class, 981

automated testing, 738-739

choosers, testing via, 769-771

integration testing, 739

IoC, 765-767

launchers, testing via, 769-771

trial conditions, testing, 767-769

unit testing, 737-739

UTF, 739-740

AssemblyCleanup attribute, 746

AssemblyInitialize attribute, 745-746

assertions, 751-752

Asynchronous attribute, 749

asynchronous testing, 762-763

Bug attribute, 749-750

ClassCleanup attribute, 746

ClassInitialize attribute, 746

creating a test project, 740-741, 747

creating test classes, 741-743

Description attribute, 748

ExpectedException attribute, 749

hiding Expressions Editor, 752-753

Ignore attribute, 747-748

metadata, 745-751

Owner attribute, 748-749

Priority attribute, 750

Tag attribute, 749

tag expressions, 743-744

testable chat client app example, 754-764

TestClass attribute, 744

testing multiple assemblies, 753

testing nonpublic members, 753

TestInitialize attribute, 747

TestMethod attribute, 745

TestProperty attribute, 747

Timeout attribute, 748

WorkItemTest class, 751

B

Back button, page navigation via, 79-80

background agents, 1011-1012, 1059-1060

background audio playback, 1059

assembly resources, playing via MediaStreamSource, 1078-1079

audio streaming agents, 1076-1079

AudioPlayerAgent class, 1060, 1064-1075

AudioStreamingAgent class, 1060

AudioTrack class, 1061

BackgroundAudioPlayer class, 1060-1061

custom audio player agent, creating, 1061-1064

foreground app, controlling playback from, 1070-1075

overview of, 1060

background file transfers, 590

sample code, 1048-1049

backing up local databases, 1052-1055

restoring local databases, 1055-1058

retrieving user Windows Live Anonymous IDs, 1050-1052

URL rerouting with WCF services, 1049-1050

transfer requests, 1043-1047

background images (lock screen), setting, 399-401

Background layer (Panorama control), 348-349

background processing, 997

background tasks, 998

battery life and, 997

multitasking and, 997

Mutex, shared resources and, 1038-1041

scheduled notifications, 998-1001

alarm registration, 1001

alarm sample, 1002-1004

reminder registration, 1005-1006

reminder sample, 1006-1010

scheduled tasks, 1010-1011, 1014-1017

API limitations, 1036-1038

background agents, 1011-1014

debugging, 1025

periodic tasks, 1013-1014

registering, 1018-1019

resource intensive tasks, 1014

scheduled task agents, 1011-1012, 1017-1018, 1035-1036

to-do list example, 1019-1035

banking, Wallet hub and, 773

introduction to, 774-775

payment instruments, storing in, 775-777

Payment Instruments sample app, 777-789

updating payment instruments, 789-792

required capabilities for wallet integration, 775

battery life (power management)

background processing and, 997

push notifications and, 493-494

BingMapsDirectionTask, choosers/launchers and, 409-412

BingMapsTask, choosers/launchers and, 413

bold text, 159-160

Bookshop sample app, 83

design-time data, 92-93

image caching, 93-95

product lists, displaying, 86-92

ProductsView class, 85-86

ProductsViewModel class, 84-85

WCF services, 95-97

Boolean option, providing via ToggleSwitch component (Toolkit), 293-295

localizing ToggleSwitch component, 295-297

switch color, changing, 297

built-in fonts (text), 160-162

buttons

Button Click mode, 124

check boxes, 131-138

Hyperlink button, 124

Icon Button Tray (application bar), minimizing, 234

icon buttons (application bar)

custom application bar, 237-238

customizing, 234-235

disabling, 235

retrieving at runtime, 236-237

Radio button, 128-131

Repeat button, 124-126

sizing, 121-123

tap and click events, 123

Toggle button, 124, 126-128

buying items, Wallet hub and, 773

introduction to, 774-775

payment instruments, storing in, 775-777

Payment Instruments sample app, 777-789

updating payment instruments, 789-792

required capabilities for wallet integration, 775

C

calls (phone), placing, 435-436

CameraCaptureTask, choosers/launchers and, 450-452

cameras, 655

lenses, 686-687

app registration, 687-689

icon creation, 689

PhotoCamera class, 655-656

building PhotoCamera app, 658-678

selection criteria, 656

thumbnails, viewing in PhotoCamera app, 672-678

video effects, adding to PhotoCamera app, 668-671

Silverlight webcam API, 655-656, 678-685

taking photos, 450-452

canceling page navigation, 77

CanExecute (object) method (iCommand interface), 38

CanExecuteChanged method (iCommand interface), 38

capabilities (apps)

app submissions to Windows Phone Marketplace, capability discovery phase, 16-17

defining, 16

ID_CAP_NETWORK capability, 16

ID_HW_FFCCAMERA capability, 16

Marketplace Test Kit, determining via, 17

cartographic modes (Map control), 589-590

cell tower triangulation and location aware apps, 561-562

certification requirements, launching events, 50

chat client app UTF testing example, 754-758

automation peers, manipulating UI elements at runtime, 763-764

code driven UI testing, 760-763

views, building, 758-760

check boxes, 131-138

choosers, 405, 408-409, 484

AddressChooserTask, 447-449

API overview, 405-406

application execution model, 406-408

appointments, 464

retrieving, 478-483

saving, 483-484

automated testing, 769-771

BingMapsDirectionTask, 409-412

BingMapsTask, 413

CameraCaptureTask, 450-452

ChooserBase.Completed events, 406-408

connection setting pages, navigating to, 413-414

ConnectionSettingsTask, 413-414

contacts, 464

converting stored contacts to/from vCards, 478

deleting changes to stored contacts, 477-478

retrieving, 464-469

saving to contact lists, 449-450

selecting addresses, 447-449

storing in Custom Contacts Store, 469-477

driving directions, retrieving, 409-412

email

composing, 417-418

saving contact addresses, 418-421

selecting email addresses, 414-417

EmailAddressChooserTask, 414-417

EmailComposeTask, 417-418

GameInviteTask, 453

games, inviting players to, 453

images, sharing, 460-461

links, sending to contacts, 444

map locations, displaying, 413

Marketplace

allowing app user reviews, 426

launching apps from, 425-426

navigating to apps in, 422-425

searching, 427-428

MarketplaceDetailTask, 422-425

MarketplaceHubTask, 425-426

MarketplaceReviewTask, 426

MarketplaceSearchTask, 427-428

media files, playing, 428-435

MediaPlayerLauncher, 428-435

phone calls, placing, 435-436

phone numbers

saving, 439-442

selecting, 437-438

PhoneCallTask, 435-436

PhoneNumberChooserTask, 437-438

Photo Hub, selecting photos from, 454-459

PhotoChooserTask, 454-459

photos, taking, 450-452

ringtones, creating, 461-463

SaveContactTask, 449-450

SaveEmailAddressTask, 418-421

SavePhoneNumberTask, 439-442

SaveRingtoneTask, 461-463

SearchTask, 442-443

ShareLinkTask, 444

ShareMediaTask, 460-461

ShareStatusTask, 445

SMS, composing, 445

SmsComposeTask, 445

status updates, posting to social networks, 445

tombstoning and, 406-408

web pages, navigating, 446-447

web searches, 442-443

WebBrowserTask, 446-447

click events (buttons), 123

clipboard, placing text on, 179-180

Close button (Windows Phone Emulator), 5

cloud services, authenticating, 511

club memberships, Wallet hub and, 773

introduction to, 774-775

membership information

storing, 792-796

updating, 802-804

required capabilities for wallet integration, 775

coded UI testing, 739

CodePlex.com, Toolkit source code, 254

color

application bar color, customizing

built-in application bar, 234

custom application bar, 246-247

colored fonts (text), 160

switch color, changing via ToggleSwitch component (Toolkit), 297

ComboBox control, 142

Commanding.Event property (iCommand interface), 39

commands, iCommand interface

CanExecute (object) method, 38

CanExecuteChanged method, 38

Commanding.Event property, 39

DelegateCommand constructor, 38-39

Execute (object) method, 38

playCommand constructor, 38-39

compass sensors, 525, 539-545

calibrating, 546-548

compass orientation, 545-546

compatibility, Windows Mobile 6.5 apps and Windows Phone 8, 1

composite validation

decoupling validation, 830

example of, 836-840

group validation, 844-847

INotifyDataErrorInfo interface, 824, 842-844

provisioning for, 827-830

reusable NotifyDataErrorInfo interface, 825-827

validating

all properties, 833-836

changing properties, 830-833

ValidationSummary control, adding INotifiyDataErrorInfo support for, 842-844

Composition (Render) Thread Frame Rate (FPS) field (Frame Rate Counter), 22

composition thread (XAML animation/graphics), 18-20

concurrency, LINQ to SQL and, 962-965

connection setting pages, navigating to, 413-414

ConnectionSettingsTask, choosers/launchers and, 413-414

connectivity (network), monitoring, 850-855

contacts, 464

contact lists, saving contacts to, 449-450

Custom Contacts Store, storing in, 469-477

retrieving, 464-469

stored contacts

converting to/from vCards, 478

deleting changes to, 477-478

content controls, Windows Phone FCL, 119-121

ContextMenu component (Toolkit)

displaying, 271-273

hosting in a ListBoxItem, 275-277

MVVM and, 273-275

control headers, adding to TimePicker component (Toolkit), 281

controls

buttons

Button Click mode, 124

check boxes, 131-138

Hyperlink button, 124

Radio button, 128-131

Repeat button, 124-126

sizing, 121-123

tap and click events, 123

Toggle button, 124, 126-128

content controls, 119-121

FrameworkElement class, 116

items controls

ComboBox control, 142

ListBox control, 140-142

Selector class members, 139

range controls

progress indicators, 145-151

ProgressBar control, 144

RangeBase class properties, 143-144

scrollbars, 152

sliders, 151-152

sensors

accelerometers, 525, 527-539

compass sensors, 525, 539-548

gyroscope sensors, 525, 548-552

motion sensors, 525, 552-557

overview of, 525-527

ToolTip control, 138

touch input

designing for, 386-388

double tap gestures, 370

hold gestures, 371-372

manipulation events, 357, 363-367

mouse events, 357-359, 361-362

tap gestures, 369-370

Toolkit gestures, 291-293, 372-386

TouchPoint class, 357, 360-363

UIElement gesture events, 357-358, 368-372

Windows Phone Emulator, 358

Windows Phone FCL

control types within, 117

Silverlight controls not in FCL, 118-119

unsupported Silverlight controls, 119

CPU Usage Graph (Windows Phone Application Analysis tool), 25

credit/debit cards, Wallet hub and, 773

introduction to, 774-775

payment instruments, storing in, 789-792

required capabilities for wallet integration, 775

storing in Wallet hub, 775-789

cross-page communication and page navigation, 77-78

cross-platform development, IMessageService interface, 41-44

Custom Contacts Store, storing contacts in, 469-477

customizing

application bar, 234, 246-247

DatePicker/TimePicker components

full-screen picker pages, 282-286

value formats in, 281-282

maps, 604-610

picker pages, 282-286

switch color, changing via ToggleSwitch component (Toolkit), 297

system tray, custom application bar, 247-248

cycle tiles, 390-394

D

data binding

AutoCompleteBox component (Toolkit), 270-271

Pivot control, populating via data bound collections, 344-347

Data Sense, monitoring data usage via, 877-879

databases (local), data storage and, 905

database schemas

updating, 951-957

versioning, 957-958

viewing, 937-942

deploying databases, 906-907

isolated storage, deploying databases to, 943-946

LINQ to SQL, 905, 908

code-first data model creation, 909-910

concurrency, 962-965

mapping inheritance hierarchies, 958-962

platform differences, 909

viewing queries via custom log, 948-950

navigation services, abstracting, 946-948

SQL Server Compact, 906

SqlMetal and database-first data model creation, 942-943

Twitter timeline viewer example, 910-912

Association attribute, 917-918

Column attribute, 912-914

connection strings, 920-924

database utilities, 919-920

leveraging custom Twitter services, 924-929

multiplicity, 917-918

one-to-many relationships, 917-918

tracking data context changes, 915

TwitterDataContext class, 918-919

TwitterUser class, 915-917

user credentials, gathering in Sign In view, 929-932

viewing tweets in Timeline view, 932-937

XAP files, 906-907

DatePicker/TimePicker components (Toolkit), 277-281

control headers, adding to TimePicker component (Toolkit), 281

customizing

full-screen picker pages, 282-286

value formats, 281-282

deactivating events (life cycle of apps), 52-53

deals/special offers, Wallet hub and, 796-802

debit/credit cards, Wallet hub and, 773

introduction to, 774-775

payment instruments, storing in, 789-792

required capabilities for wallet integration, 775

storing in Wallet hub, 775-789

debugging

Lock screen, engaging while debugging via Simulation Dashboard, 63

scheduled tasks, 1025

Deep Zoom technology, viewing high-resolution images via MultiScaleImage element, 207-217

DelegateCommand constructor (iCommand interface), 38-39

deleting

changes to stored contacts, 477-478

music to media library, 205-207

deploying apps via Application Deployment tool, 15

DeviceExtendedProperties class. See DeviceStatus class

DeviceFirmwareVersion property (DeviceStatus class), 28

DeviceHardwareVersion property (DeviceStatus class), 28

DeviceManufacturer property (DeviceStatus class), 28

DeviceName property (DeviceStatus class), 28

DeviceStatus class, 27

ApplicationCurrentMemoryUsage property, 28

ApplicationMemoryUsageLimit property, 27-29

ApplicationPeakMemoryUsage property, 28

DeviceFirmwareVersion property, 28

DeviceHardwareVersion property, 28

DeviceManufacturer property, 28

DeviceName property, 28

DeviceTotalMemory property, 28

IsKeyboardDeployed property, 28

IsKeyboardPresent property, 28

KeyboardDeployedChanged event, 29-30

PowerSource property, 28, 30

PowerSourceChanged event, 29-30

properties, viewing, 27

DeviceTotalMemory property (DeviceStatus class), 28

dictation grammars (speech recognition), 701-703

directions

driving directions, retrieving, 409-412

Maps app, showing in, 611

disabling

application bar menu, 242-243

icon buttons (application bar), 235

double tap gestures (touch input), 370, 374, 382

drag gestures (touch input), 375-377, 383

drawing surface, presenting via InkPresenter element, 186-193

driving directions, retrieving, 409-412

E

eBay OData consumer application, building, 862

EbaySearchView page, 867-871

EbaySearchViewModel class, 864-867

extending OData entity classes, 874

fetching data when user scrolls to the end of a list, 871-873

OData wrapper creation, 862-864

ScrollViewerMonitor class, 871-873

edge tracing photo extras application, creating, 634-645

email

composing, 417-418

contact addresses, saving, 418-421

email addresses, selecting, 414-417

EmailAddressChooserTask, choosers/launchers and, 414-417

EmailComposeTask, choosers/launchers and, 417-418

embedding fonts (text), 162-164

emulators. See Windows Phone Emulator

events (life cycle of apps)

deactivating events, 52-53

launching, 50-51

subscribing to, 51

tombstoning, 52-53

Execute (object) method (iCommand interface), 38

execution model, 48

application life cycle, 49

deactivating events, 52-53

launching events, 50-51

subscribing to events, 51

tombstoning, 52-53

application state, 49

restoring transient state, 55

saving persistent state, 56

saving transient state, 53-54

transient state requirements, 54-55

apps

exiting programmatically, 53

terminating, 53

execution profiling (Windows Phone Application Analysis tool), 21-23

exiting apps programmatically, 53

expanding application bar, 233

Expression Blend for Windows Phone, 2

Expressions Editor (UTF), hiding, 752-753

External Events view (Windows Phone Application Analysis tool), 25

F

FAS (Fast App Switching), 56

Fast App Resume, 56, 63

App.RootFrame_Navigated method, 60-61

App.RootFrame_Navigating method, 59-61

enabling, 56-57

FastAppResumeViewModel class, 61-62

launching, 57-59

optimizing, 57

recommended resume behaviors, 58

file associations, 967-968

auto-launching apps via file associations, 968

launching files, 973-975

receiving file launch requests, 970-973

registering file associations, 968-970

user experience, effects on, 976

file transfers (background), 1043

app termination/resubscription to transfer events, 1048

sample code, 1048-1049

backing up local databases, 1052-1055

restoring local databases, 1055-1058

retrieving user Windows Live Anonymous IDs, 1050-1052

URL rerouting with WCF services, 1049-1050

transfer requests, 1043-1047

financial information, storing in Wallet hub, 773

introduction to, 774-775

payment instruments, storing in, 775-777

Payment Instruments sample app, 777-789

updating payment instruments, 789-792

required capabilities for wallet integration, 775

Fit to Screen button (Windows Phone Emulator), 5

flat lists, 305-306

flexible layouts via WrapPanel component (Toolkit), 297

child element spacing, 298

ListBox, using with, 300-302

sample code, 298-299

flick gestures (touch input), 377-378, 384-386

flip tiles, 390, 394-395

floating menu (Windows Phone Emulator), 4

fonts (text)

assigning, 164

bold text, 159-160

built-in fonts, 160-162

colored fonts, 160

embedding fonts, 162-164

language support, 160-161

OpenType fonts, 159

properties of, 158-160

Segoe font, 160

selecting, 159

sizing, 159-160

stretching, 159

styling, 159

third-party fonts, 162-164

weight adjustments, 159-160

Windows Font Preview tool, 163

foreground apps

background audio playback, controlling, 1070-1075

background file transfers, 1043

multitasking and, 997

Mutex and shared resources, 1038-1041

foreign languages/cultures. See internationalization

Frame Rate Counter, 20-21

Frame Rate Graph (Windows Phone Application Analysis tool), 25

FrameworkElement class, 116

full-screen, switching application bar to, 244-246

full-screen picker pages, customizing, 282-286

G

game loops, controlling via GameTimer class, 202-203

update intervals, controlling, 203

XNA environment initialization, 203-204

GameInviteTask, choosers/launchers and, 453

games, inviting players to, 453

GC Events (Windows Phone Application Analysis tool), 26

geographic location API, 563

DesiredAccuracy property, 565

DesiredAccuracyInMeters property, 565

Geolocator class, 563

location simulator sample code, 571-575

testing, 570-571

monitoring position changes, 566

MovementThreshold property, 565-566

PositionChanged events, 566-584

retrieving current location, 563-565

StatusChanged events, 567-568

geographically aware apps. See location aware apps

gesture events (touch input), 357-358, 368-369

double tap gestures, 370

GestureBegin events, 380-381

GestureCompleted events, 380-381

hold gestures, 371-372

tap gestures, 369-370

globalization, 613-614

graphics/animation

page orientation

animating entire pages when orientation changes, 108-110

animating page elements when orientation changes, 106-107

page transitions, 110-114

XAML

composition thread, 18-20

UI thread, 18-20

group validation, 818-820, 844-847

grouped lists, 307

Marketplace app list sample, 307-314

user contacts list sample, 316-323

gyroscope sensors, 525, 548-552

H

headers

control headers, adding to TimePicker component (Toolkit), 281

Pivot headers, 331-332

heading, adjusting in Map control, 593

helium voice app, creating, 692-698

hiding

application bar, 233

Expressions Editor (UTF), 752-753

high-resolution images, viewing via MultiScaleImage element, 207-208

Deep Zoom technology, 207-217

Deep Zoom Viewer sample code, 212-217

image creation, 208-209

image tiling, 208

MultiScaleImage API, 210-212

hold gestures (touch input), 371-372, 375, 382

HTTP services, 850

Hyperlink button, 124

I

iCommand interface, 38

CanExecute (object) method, 38

CanExecuteChanged method, 38

Commanding.Event property, 39

DelegateCommand constructor, 38-39

Execute (object) method, 38

playCommand constructor, 38-39

Icon Button Tray (application bar), minimizing, 234

icon buttons (application bar)

built-in application bar

customizing, 234-235

disabling, 235

custom application bar

icon buttons, 237-238

minimizing Icon Button Tray, 243

iconic tiles, 390, 395-396

ID_CAP_NETWORK capability, 16

ID_HW_FFCCAMERA capability, 16

Image Loads (Windows Phone Application Analysis tool), 26

images

background images (lock screen), setting, 399-401

caching, Bookshop sample app, 93-95

cameras, 655

lenses, 686-689

PhotoCamera class, 655-678

Silverlight webcam API, 655-656, 678-685

displaying, 184-185

drawing surface, presenting via InkPresenter element, 186-193

high-resolution images, viewing via MultiScaleImage element, 207-208

Deep Zoom image creation, 208-209

Deep Zoom technology, 207-217

Deep Zoom Viewer sample code, 212-217

image tiling, 208

MultiScaleImage API, 210-212

icon buttons (application bar), 235-236

live tiles, 390

localizability (internationalization), 620-621, 625-629

Photo Hub, selecting photos from, 454-459

picture viewer, 631

edge tracing extras application, 634-645

photo extras applications, 631-645

photo share applications, 631, 645-654

photo upload share application, 647-654

pixel density/picture quality, 632

sharing, 460-461

sizing, 185-186

stock ticker application example, 520-521

taking photos, 450-452

thumbnail images, viewing in PhotoCamera app, 672-678

IMessageService interface, 41-44

InkPresenter element, drawing surfaces, 186-193

INPC (INotifyPropertyChanged) class, MVVM property change notification

alternative implementation approach, 35-37

traditional implementation approach, 33-35

in-place selection in Toolkit, 255-258

input validation, 805

asynchronous validation, 824

decoupling validation, 830

example of, 836-840

group validation, 844-847

INotifyDataErrorInfo interface, 824, 842-844

provisioning for, 827-830

reusable NotifyDataErrorInfo interface, 825-827

validating all properties, 833-836

validating changing properties, 830-833

ValidationSummary control, adding INotifyDataErrorInfo support for, 842-844

composite validation

decoupling validation, 830

example of, 836-840

group validation, 844-847

INotifyDataErrorInfo interface, 824, 842-844

provisioning for, 827-830

reusable NotifyDataErrorInfo interface, 825-827

validating all properties, 833-836

validating changing properties, 830-833

ValidationSummary control, adding INotifyDataErrorInfo support for, 842-844

group validation, 818-820, 844-847

property setters, 806-809

binding errors, 809-810

critical exceptions, 809

validation class, 809

validation limitations, 823-824

semantic validation, 806

synchronous validation

decoupling validation, 830

provisioning for, 827-828

validating changing properties, 830-833

syntactic validation, 806

validation visual states, defining, 810-815

displaying error details, 820-823

group validation, 818-820

property setter validation limitations, 823-824

validating textboxes as user types, 815-818

inputting text via TextBox control, 165

input scope, 168-174

IntelliSense support, 168

SIP, 165-168

word prediction, 168

installing

Toolkit, 254

Windows Phone SDK 8.0, 2

integration testing, 739

IntelliSense text support, 168

Intermediate Surface Counter field (Frame Rate Counter), 22

internationalization, 613

defining, 613

globalization, 613-614

localizability

defining, 614

dynamic localizability, 618-620

images, 620-621, 625-629

resx files, 614-618, 620-630

RTL support, 629-630

sample code, 621-630

text, 625-629

UI updates when cultures change, 618-620

speech-driven apps, 721-723

text support, 160-161

Internet

links, sending to contacts, 444

web pages, navigating, 446-447

web searches, 442-443

invitations (games), 453

IoC (Inversion of Control), 765-767

IsKeyboardDeployed property (DeviceStatus class), 28

IsKeyboardPresent property (DeviceStatus class), 28

isolated storage

IsolatedStorageSettings class, 889-890

local databases, deploying to, 943-946

SQL CE database files, 940-942

storing/browsing web content in, 225-228

Windows Phone SDK Isolated Storage Explorer, 938-939

WP7 Isolated Storage Explorer, 939-940

item visibility, custom application bar, 250

items controls

ComboBox control, 142

ListBox control, 140-142

Selector class members, 139

Items layer (Panorama control), 349

itineraries, displaying via visual states in Map control, 604-610

J - K - L

JavaScript, web page behaviors, 222-223

KeyboardDeployedChanged event (DeviceStatus class), 29-30

keyboards, SIP layouts, 165-166

languages (internationalization), 613

globalization, 613-614

internationalization, 613

localizability

defining, 614

dynamic localizability, 618-620

images, 620-621, 625-629

resx files, 614-618, 620-630

RTL support, 629-630

sample code, 621-630

text, 625-629

UI updates when cultures change, 618-620

speech-driven apps, 721-723

text support, 160-161

launchers, 405, 408-409, 484

AddressChooserTask, 447-449

API overview, 405-406

appointments, 464

retrieving, 478-483

saving, 483-484

automated testing, 769-771

BingMapsDirectionTask, 409-412

BingMapsTask, 413

CameraCaptureTask, 450-452

connection setting pages, navigating to, 413-414

ConnectionSettingsTask, 413-414

contacts, 464

converting stored contacts to/from vCards, 478

deleting changes to stored contacts, 477-478

retrieving, 464-469

saving to contact lists, 449-450

selecting addresses, 447-449

storing in Custom Contacts Store, 469-477

driving directions, retrieving, 409-412

email

composing, 417-418

saving contact addresses, 418-421

selecting email addresses, 414-417

EmailAddressChooserTask, 414-417

EmailComposeTask, 417-418

games, inviting players to, 453

images, sharing, 460-461

links, sending to contacts, 444

map locations, displaying, 413

Marketplace

allowing app user reviews, 426

launching apps from, 425-426

navigating to apps in, 422-425

searching, 427-428

MarketplaceDetailTask, 422-425

MarketplaceHubTask, 425-426

MarketplaceReviewTask, 426

MarketplaceSearchTask, 427-428

media files, playing, 428-435

MediaPlayerLauncher, 428-435

phone calls, placing, 435-436

phone numbers

saving, 439-442

selecting, 437-438

PhoneCallTask, 435-436

PhoneNumberChooserTask, 437-438

Photo Hub, selecting photos from, 454-459

PhotoChooserTask, 454-459

photos, taking, 450-452

ringtones, creating, 461-463

SaveContactTask, 449-450

SaveEmailAddressTask, 418-421

SavePhoneNumberTask, 439-442

SaveRingtoneTask, 461-463

SearchTask, 442-443

ShareLinkTask, 444

ShareMediaTask, 460-461

ShareStatusTask, 445

SMS, composing, 445

SmsComposeTask, 445

status updates, posting to social networks, 445

web pages, navigating, 446-447

web searches, 442-443

WebBrowserTask, 446-447

launching events (life cycle of apps), 50-51

layouts (flexible) via WrapPanel component (Toolkit)

child element spacing, 298

flexible layouts via WrapPanel component (Toolkit), 297

ListBox, using with, 300-302

sample code, 298-299

lenses (cameras), 686-687

app registration, 687-689

icons, creating, 689

life cycle of apps, 49

events

deactivating, 52-53

launching, 50-51

subscribing to, 51

tombstoning, 52-53

light (low), Map control adjustments, 588-589

LineBreak objects, TextBlock element, 155-158

links, sending to contacts, 444

LINQ

maps and, 597

OData and, 855-856

LINQ to SQL

concurrency, 962-965

inheritance hierarchies, mapping, 958-962

local databases, data storage and, 905, 908

code-first data model creation, 909-910

platform differences, 909

queries, viewing via custom log, 948-950

list grammars (speech recognition), 701-710, 731-732

ListBox control, 140-142

ListPicker component (Toolkit), 255-258

lists

flat lists, 305-306

grouped lists, 307

Marketplace app list sample, 307-314

user contacts list sample, 316-323

LongListSelector, 303-304

live tiles, 389

animation, 391

changing templates, 391

configuring, 390

cycle tiles, 390-394

flip tiles, 390, 394-395

iconic tiles, 390, 395-396

images, 390

large tiles, 390

lock screen customization, 397-399

background images, 399-401

creating lock screen icons, 403-404

notification text, 401-403

resolution, 391

schedules, updating tile notifications, 504-505

sizing, 390-391

sound, 391

Start Experience (Windows Phone Emulator), 389-390

updating, 391, 396-397

local databases, data storage and, 905

database schemas

updating, 951-957

versioning, 957-958

viewing, 937-942

deploying databases, 906-907

isolated storage, deploying databases to, 943-946

LINQ to SQL, 905, 908

code-first data model creation, 909-910

concurrency, 962-965

mapping inheritance hierarchies, 958-962

platform differences, 909

viewing queries via custom log, 948-950

navigation services, abstracting, 946-948

SQL Server Compact, 906

SqlMetal and database-first data model creation, 942-943

Twitter timeline viewer example, 910-912

Association attribute, 917-918

Column attribute, 912-914

connection strings, 920-924

database utilities, 919-920

leveraging custom Twitter services, 924-929

multiplicity, 917-918

one-to-many relationships, 917-918

tracking data context changes, 915

TwitterDataContext class, 918-919

TwitterUser class, 915-917

user credentials, gathering in Sign In view, 929-932

viewing tweets in Timeline view, 932-937

XAP files, 906-907

local folder, state preservation and, 881-882

.NET Isolated Storage API, 883-886

WinPRT Windows Storage API, 883, 887-889

localizability

defining, 614

dynamic localizability, 618-620

images, 620-621, 625-629

resx files, 614-618

image localization, 620-621

localizability sample code, 621-630

RTL support, 629-630

sample code, 621-630

text, 625-629

UI updates when cultures change, 618-620

location aware apps. See also maps, 559

A-GPS and, 560-561

architecture of, 562-563

background location tracking, 569-570

cell tower triangulation and, 561-562

determining location, 559-562

geographic location API, 563

DesiredAccuracy property, 565

DesiredAccuracyInMeters property, 565

Geolocator class, 563, 570-575

monitoring position changes, 566

MovementThreshold property, 565-566

PositionChanged events, 566-584

retrieving current location, 563-565

StatusChanged events, 567-568

hardware layer, 563

location simulator, 570-575

location viewer sample code, 575

civic address resolution, 580

displaying location via GeoLocationView page, 577-579

GeoLocationViewModel class, 575-577

managed layer, 563

native code layer, 563

Rx and, 580-584

Wi-Fi triangulation and, 562

location tracking via Map control, 594-596

lock screen

customizing via live tiles, 397-399

background images, 399-401

creating lock screen icons, 403-404

notification text, 401-403

running apps under, 63-64

LockScreenService class, 64-66

LockScreenViewModel class, 66-67

Windows Phone Emulator, engaging Lock screen within, 63

LockablePivot control (Toolkit), 355

LongListSelector, 303-304

flat lists, 305-306

grouped lists, 307

Marketplace app list sample, 307-314

user contacts list sample, 316-323

visual structure of, 304

looping lists, 287-291

LoopingSelector component (Toolkit), 287-291

low light conditions, adjusting Map control for, 588-589

loyalty cards, Wallet hub and, 773

introduction to, 774-775

membership information

storing, 792-796

updating, 802-804

required capabilities for wallet integration, 775

M

MainPage (XAML apps), 6, 9-11

managed storage, state preservation and, 882

manipulation events (touch input), 357, 363-367

maps. See also location aware apps, 559

LINQ and, 597

Map control, 585-587

Application ID, 587

AuthenticationToken, 587

calculating shortest routes between two points, 598-601

cartographic modes, 589-590

centering to current location, 590-591

customizing page elements via visual states, 604-610

heading adjustments, 593

location tracking, 594-596

low light conditions, 588-589

overlaying content, 596-597

panning/zooming, 590

pitch adjustments, 593

route calculator, 601-602

sample Map View, 587-588

searching for routes via RouteSearchView, 602-604

setting viewable area of map, 592-593

showing directions via Maps app, 611

showing locations via Maps app, 610-611

Maps app

downloading maps, 612

showing directions via, 611

showing locations via, 413, 610-611

Marketplace

apps

allowing user reviews, 426

launching, 425-426

navigating to, 422-425

searching, 427-428

Marketplace Test Kit, determining app capabilities via, 17

MarketplaceDetailTask, choosers/launchers and, 422-425

MarketplaceHubTask, choosers/launchers and, 425-426

MarketplaceReviewTask, choosers/launchers and, 426

MarketplaceSearchTask, choosers/launchers and, 427-428

media files, playing, 428-435

media library, saving/deleting music, 205-207

MediaElement, playing audio/video, 193-194

controlling audio output, 194

sample code, 194-200

streaming content, 194

XNA SoundEffect class, 201-202

MediaPlayerLauncher, choosers/launchers and, 428-435

memberships (club), Wallet hub and, 773

introduction to, 774-775

membership information

storing, 792-796

updating, 802-804

required capabilities for wallet integration, 775

memory usage

determining (apps), 27-29

Memory Usage MB Graph (Windows Phone Application Analysis tool), 26

menu items (application bar)

built-in application bar, customizing, 234-235

custom application bar, 237-238

runtime, retrieving at, 236-237

MessageService property and IMessageService interface, 41-44

metadata, UTF (Unit Test Framework) and, 745-751

Metro. See Microsoft Design Language

microphone, 691

helium voice app, creating, 692-698

recording audio, 691-692

Microsoft Design Language, 153

Microsoft Expression Blend for Windows Phone, 2

Microsoft.Phone.Info.DeviceStatus class. See DeviceStatus class

minimizing

Icon Button Tray (application bar), 243

Windows Phone Emulator window, 4-5

motion sensors, 525, 552-557

mouse events (touch input), 357-359, 361-362

MPNS (Microsoft Push Notification Service), 487-488, 509-511

MSIL (Microsoft Intermediate Language), XAP files, 16-17

multiline text, 155-158

multiple languages/cultures (internationalization), 613

globalization, 613-614

internationalization, 613

localizability

defining, 614

dynamic localizability, 618-620

images, 620-621, 625-629

resx files, 614-618, 620-630

RTL support, 629-630

sample code, 621-630

text, 625-629

UI updates when cultures change, 618-620

speech-driven apps, 721-723

text support, 160-161

MultiScaleImage API, 210-212

MultiScaleImage element, viewing high-resolution images, 207-208

Deep Zoom technology, 207-217

Deep Zoom Viewer sample code, 212-217

image creation, 208-209

image tiling, 208

MultiScaleImage API, 210-212

multitasking, background processing and, 997

music, saving to/deleting from media library, 205-207

Mutex, shared resources and, 1038-1041

MVVM (Model-View-ViewModel) pattern, 31

AutoCompleteBox component (Toolkit) and, 260-264

ContextMenu component (Toolkit) and, 273-275

implementing, 31-32

property change notification, 33

INPC implementation, alternative approach, 35-37

INPC implementation, traditional approach, 33-35

ViewModelBase class, 32

N

navigating pages, 67-69

canceling, 77

cross-page communication, 77-78

handling, 76

hardware Back button, 79-80

navigation history stacks, 72-73

NavigationService property, 75

backward navigation, 76

forward navigation, 76

page redirection, 78-79

query strings, passing page arguments via, 71-73

unmapped URI, 69

external navigation via button control, 69-70

external navigation via HyperlinkButton control, 70

hosting web content within apps, 70-71

internal URI, 69

URI mapping, 73-74

navigation history stacks, 72-73

.NET Isolated Storage API, 883-885

reading/writing data to isolated storage, 884-886

serialization performance, 886-887

network connectivity, monitoring, 850-855

network services, 849

Data Sense, monitoring data usage via, 877-879

hosting, 850

HTTP services, 850

network connectivity, monitoring, 850-855

OData, 850, 855

eBay consumer application build, 862-874

EbaySearchView page, 867-871

EbaySearchViewModel class, 864-867

extending OData entity classes, 874

fetching data when user scrolls to the end of a list, 871-873

generating proxies, 858

LINQ and, 855-856

query options, 858-860

ScrollViewerMonitor class, 871-873

URI structure, 856-858

using proxies, 860-861

wrapper creation, 862-864

REST services, 850

Simulation Dashboard, 876

SOAP services, 850

NFC, sharing images, 460-461

notification text, lock screen customization, 401-403

notifications (push), 485

benefits of, 486-487

cloud service authentication, 511

enabling, 489

MPNS and, 487-488, 509-511

notification classes, 509-511

power management and, 493-494

raw notifications, 486, 505

notification classes, 510-511

notifications in HttpWebResponse, identifying, 509

receiving, 508-509

sending, 505-507

stock ticker application example, 521-523

sending, 495

SLA and, 488

stock ticker application example, 511-524

subscribing to, 489-490

binding to shell, 490-491

channel errors, handling, 492-493

HttpNotificationChannel events, 491-492

tile notifications, 486, 500-501

notification classes, 510-511

sending, 501-504

stock ticker application example, 520

updating via shell tile schedules, 504-505

toast notifications, 485, 495-496

notification classes, 510-511

receiving, 496-497

sending, 497-500

stock ticker application example, 520

Windows Phone Marketplace requirements, 489

notifications (scheduled), 998-1001

alarm registration, 1001

alarm sample, 1002-1004

reminder registration, 1005-1006

reminder sample, 1006-1010

numbers (phone)

saving, 439-442

selecting, 437-438

O

OData, 850, 855

eBay consumer application, building, 862

EbaySearchView page, 867-871

EbaySearchViewModel class, 864-867

extending OData entity classes, 874

fetching data when user scrolls to the end of a list, 871-873

OData wrapper creation, 862-864

ScrollViewerMonitor class, 871-873

LINQ and, 855-856

proxies

generating, 858

using, 860-861

query options, 858-860

URI structure, 856-858

opacity

application bar, changing in

built-in application bar, 234

custom application bar, 244

XAML element visibility and performance, 20

OpenType fonts, 159

orientation

page orientation

animating entire pages when orientation changes, 108-110

animating page elements when orientation changes, 106-107

PhoneApplicationPage class, 99-104

setting at runtime, 105-106

PanoramaItem control, 350

Windows Phone Emulator display, changing, 4-5

P

page navigation. See also Pivot control; Panorama control, 67-69, 325

canceling, 77

cross-page communication, 77-78

handling, 76

hardware Back button, 79-80

navigation history stacks, 72-73

NavigationService property, 75

backward navigation, 76

forward navigation, 76

page redirection, 78-79

query strings, passing page arguments via, 71-73

unmapped URI, 69

external navigation via button control, 69-70

external navigation via HyperlinkButton control, 70

hosting web content within apps, 70-71

internal URI, 69

URI mapping, 73-74

page orientation

animating

entire pages when orientation changes, 108-110

page elements when orientation changes, 106-107

PhoneApplicationPage class, 99-100

OrientationChanged event, 100-102

PhoneApplicationPage orientation property, 102-104

runtime, setting at, 105-106

page transitions (animated), Windows Phone Toolkit, 110-114

panning/zooming via Map control, 590

Panorama control. See also Pivot control; page navigation, 325, 327-328, 347

Background layer, 348-349

components of, 347-348

Items layer, 349

PanoramaItem control, 349-350

Pivot control, differences and similarities, 326

sample code, 350-354

style assumptions, 326

things to avoid, 355

Title layer, 349

Windows Phone 8 performance, 329

Windows Phone FCL, placement within, 328

PasswordBox element, 154

passwords, receiving via PasswordBox control, 175-176

payments, making via Wallet hub, 773

introduction to, 774-775

payment instruments, storing in, 775-777

Payment Instruments sample app, 777-789

updating payment instruments, 789-792

required capabilities for wallet integration, 775

performance

apps, Windows Phone Marketplace requirements, 21

Frame Rate Counter, 20-21

Windows Phone 8, Pivot and Panorama controls, 329

Windows Phone Application Analysis tool, 21, 26

CPU Usage Graph, 25

execution profiling, 21-23

External Events view, 25

Frame Rate Graph, 25

GC Events, 26

Image Loads, 26

launching, 21-23

Memory Usage MB Graph, 26

Performance Warnings view, 26-27

Storyboards, 26

viewing performance metrics, 24

XAML element visibility and performance, 19-20

Performance Warnings view (Windows Phone Application Analysis tool), 26-27

periodic tasks, 1013-1014

persistent application state. See also transient application state, 49, 56, 97

phone calls, placing, 435-436

phone numbers

saving, 439-442

selecting, 437-438

PhoneApplicationPage class, page orientation, 99-100

OrientationChanged event, 100-102

PhoneApplicationPage orientation property, 102-104

PhoneApplicationPage.State dictionary, state preservation and, 49

PhoneCallTask, choosers/launchers and, 435-436

PhoneNumberChooserTask, choosers/launchers and, 437-438

Photo Hub, selecting photos from, 454-459

PhotoChooserTask, choosers/launchers and, 454-459

photos

cameras, 655

lenses, 686-689

PhotoCamera class, 655-656, 678

Silverlight webcam API, 655-656, 678-685

picture viewer, 631

edge tracing extras application, 634-645

photo extras applications, 631-645

photo share applications, 631, 645-654

photo upload share application, 647-654

pixel density/picture quality, 632

sharing, 460-461

taking, 450-452

thumbnail photos, viewing in PhotoCamera app, 672-678

phrase list grammars (speech recognition), 701-710, 731-732

picker pages, customizing, 282-286

picture viewer, 631

photo extras applications, 631

creating, 632-645

edge tracing extras application, 634-645

photo share applications, 631

creating, 645-654

photo upload share application, 647-654

pixel density/picture quality, 632

pinch gestures (touch input), 378-380, 383-384

pitch, adjusting in Map control, 593

Pivot control. See also Panorama control; page navigation, 325, 327, 329

application bars, hosting multiple, 333-343

components of, 331-332

load events, 333

LockablePivot control (Toolkit), 355

Panorama control, differences and similarities, 326

placing Pivot on a page, 329-331

populating via data bound collections, 344-347

setting active PivotItem presenters, 332

style assumptions, 326

things to avoid, 355

Visual Studio New Project dialog, creating Pivot applications in, 331

Windows Phone 8 performance, 329

Windows Phone FCL, placement within, 328

pixel density/picture quality (picture viewer), 632

playCommand constructor (iCommand interface), 38-39

position changes, monitoring (location aware apps), 566-584

power management, push notifications and, 493-494

PowerSource property (DeviceStatus class), 28, 30

PowerSourceChanged event (DeviceStatus class), 29-30

preserving app state/settings, 47-48

automatic state preservation system, building, 890-893

binary serialization, 898-901

creating property accessor delegates, 902-903

customizing ViewModel state preservation, 892-893

identifying stateful ViewModels, 893-898

Silverlight Serializer and, 898-901

unwinding property lambda expressions, 901-902

IsolatedStorageSettings class, 889-890

local folder, 881-882

managed storage, 882

.NET Isolated Storage API, 883-885

reading/writing data to isolated storage, 884-886

serialization performance, 886-887

WinPRT Windows Storage API, 883, 887-888

application settings, 888-889

measuring available free space, 888

serialization requirements, 889

previewing fonts (text), 163

product lists, displaying (Bookshop sample app), 86-92

ProductsView class, Bookstore sample app, 85-86

ProductsViewModel class, Bookshop sample app, 84-85

progress indicators, 145-151

ProgressBar control, 144

property change notification (MVVM), 33-37

protocol associations, 967-968

auto-launching apps via protocol associations, 977

launching protocol URI, 979-980

receiving protocol launch requests, 977-979

registering protocol associations, 977

reserved protocol names, 981

user experience, effects on, 976

purchases, making via Wallet hub, 773

introduction to, 774-775

payment instruments, storing in, 775-777

Payment Instruments sample app, 777-789

updating payment instruments, 789-792

required capabilities for wallet integration, 775

push notifications, 485

benefits of, 486-487

cloud service authentication, 511

enabling, 489

MPNS and, 487-488, 509-511

notification classes, 509-511

power management and, 493-494

raw notifications, 486, 505

notification classes, 510-511

notifications in HttpWebResponse, identifying, 509

receiving, 508-509

sending, 505-507

stock ticker application example, 521-523

sending, 495

SLA and, 488

stock ticker application example, 511-524

subscribing to, 489-490

binding to shell, 490-491

channel errors, handling, 492-493

HttpNotificationChannel events, 491-492

tile notifications, 486, 500-501

notification classes, 510-511

sending, 501-504

stock ticker application example, 520

updating via shell tile schedules, 504-505

toast notifications, 485, 495-496

notification classes, 510-511

receiving, 496-497

sending, 497-500

stock ticker application example, 520

Windows Phone Marketplace requirements, 489

Q - R

query strings, passing page arguments via (page navigation), 71-73

quick cards, search integration and, 983-984

application manifests, 985-987

captions, customizing, 987-989

landing pages, creating to display quick card information, 994-995

quick card target pages, defining, 989-994

Radio button, 128-131

range controls

progress indicators, 145-151

ProgressBar control, 144

RangeBase class properties, 143-144

scrollbars, 152

sliders, 151-152

raw notifications, 486, 505

notification classes, 510-511

receiving, 508-509

sending, 505-507

stock ticker application example, 521-523

reading device information. See DeviceStatus class

ready-to-use grammars (speech recognition), 701-703

recording audio, 691-692

redirecting pages, page navigation, 78-79

reminders (scheduled notifications)

registering, 1005-1006

sample code, 1006-1010

Repeat button, 124-126

resolution

live tiles, 391

Windows Phone Emulator, changing settings in, 5

resource intensive tasks, 1014

REST services, 850

restoring transient state, 55

retitling apps, Windows Phone Emulator, 6

retrieving

appointments, 478-483

contacts, 464-469

device information. See DeviceStatus class

reusing code, IMessageService interface, 41-44

reviews (apps), allowing in Marketplace, 426

rich content, displaying via RichTextBox control, 176-179

ringtones, creating, 461-463

Rotate Orientation button (Windows Phone Emulator), 5

routes (maps), calculating

displaying via visual states in Map control, 604-610

route calculator, 601-602

searching for routes via RouteSearchView, 602-604

shortest routes between two points, 598-601

RTL, localizability support, 629-630

Run objects, TextBlock element, 155-158

Rx, 580

S

SaveContactTask, choosers/launchers and, 449-450

SaveEmailAddressTask, choosers/launchers and, 418-421

SavePhoneNumberTask, choosers/launchers and, 439-442

SaveRingtoneTask, choosers/launchers and, 461-463

saving

appointments, 483-484

contacts

contact lists, 449-450

Custom Contacts Store, 469-477

email addresses, 418-421

music to media library, 205

phone numbers, 439-442

transient state, 53-54

scaling, Fit to Screen button (Windows Phone Emulator display window), 5

scheduled notifications, 998-1001

alarm registration, 1001

alarm sample, 1002-1004

reminder registration, 1005-1006

reminder sample, 1006-1010

scheduled tasks, 1010-1011, 1014-1018

API limitations, 1036-1038

background agents, 1011-1014

debugging, 1025

periodic tasks, 1013-1014

registering, 1018-1019

resource intensive tasks, 1014

ScheduledTaskAgent, 1011-1012

to-do list example, 1019-1024

creating to-do item shell tiles, 1028-1029

debugging scheduled tasks, 1025

editing existing to-do items, 1030-1035

saving to-do items, 1029-1030

todoListView XAML, 1025-1028

updating tiles via Scheduled Task Agent, 1035-1036

Screen Fill Rate Counter field (Frame Rate Counter), 22

scrollbars, 152

search integration, 983

App Instant Answer, 996

configuring, 985

application manifests, 985-987

creating landing pages to display quick card information, 994-995

customizing captions, 987-989

defining quick card target page, 989-994

searching

Marketplace, 427-428

web, 442-443

SearchTask, choosers/launchers and, 442-443

Segoe font (text), 159

Selector class, items controls, 139

semantic validation, 806

sensors

accelerometers, 525

Accelerometer class, 528-529

calibrating, 533-536

shake detection, 537-539

simulating acceleration via emulator, 529-530

smoothing readings, 530-533

compass sensors, 525, 539-545

calibrating, 546-548

compass orientation, 545-546

gyroscope sensors, 525, 548-552

motion sensors, 525, 552-557

overview of, 525-527

shake detection, accelerometers and, 537-539

ShareLinkTask, choosers/launchers and, 444

ShareMediaTask, choosers/launchers and, 460-461

ShareStatusTask, choosers/launchers and, 445

sharing

images, 460-461

links with contacts, 444

status updates in social networks, 445

shell tiles. See live tiles

Show Resolution Settings button (Windows Phone Emulator), 5

Silverlight

Deep Zoom technology, 207-217

Silverlight Serializer, building an automatic state preservation system, 898-901

Silverlight webcam API, 655-656, 678-685

Windows Phone FCL

Silverlight controls not in FCL, 118-119

unsupported Silverlight controls, 119

XAML, 1

XAML plus .NET, 1

Simulation Dashboard, 63, 876

SIP (Software Input Panel), 165

dimensions of, 165

dismissing programmatically, 167-168

keyboard layouts, 165-166

opening programmatically, 165-167

sizing

buttons, 121-123

images, 185-186

live tiles, 390-391

text, 159-160

touch input sizing/spacing constraints, 387

Windows Phone Emulator displays, 4

SLA (Service-Level Agreements), push notifications and, 488

slider controls, 151-152

SMS, composing, 445

SmsComposeTask, choosers/launchers and, 445

SOAP services, 850

social networks, posting status updates to, 445

Solution Explorer, 3

sound

background audio playback, 1059

audio streaming agents, 1076-1079

AudioPlayerAgent class, 1060, 1064-1075

AudioStreamingAgent class, 1060

AudioTrack class, 1061

BackgroundAudioPlayer class, 1060-1061

controlling playback from foreground app, 1070-1075

creating custom audio player agent, 1061-1064

overview of, 1060

playing assembly resources via MediaStreamSource, 1078-1079

live tiles, 391

media files, playing, 428-435

ringtones, creating, 461-463

sound effects, 201-202

special offers/deals, Wallet hub and, 796-802

speech-driven apps, 699

speech recognition, 700-701

custom speech recognition UI, 718-721

dictation grammars, 701-703

internationalization, 721-723

list grammars, 701-710, 731-732

phrase list grammars, 701-710, 731-732

ready-to-use grammars, 701-703

speech recognizer settings, 717-718

SRGS grammars, 702, 710-717

web search grammars, 701-703

XML grammars, 701-702, 710-717

TTS, 732

selecting speaking voice, 732-733

SSML files, 733-735

voice commands, launching apps via, 723-724

installing VCD files, 726-730

updating phrase lists in VCD files, 731-732

VCD file structure, 724-725

Voice Paint app, creating, 703-721

splash screens, 80-83

SQL CE database files, viewing/modifying, 940-942

SQL Server Compact, local databases and data storage, 906

SqlMetal, database-first data model creation, 942-943

SRGS grammars (speech recognition), 702, 710-717

SSML (Speech Synthesis Markup Language) files, 733-735

Start Experience (Windows Phone Emulator), 6, 389-390

state preservation, 47-48

automatic state preservation system, building, 890-893

binary serialization, 898-901

creating property accessor delegates, 902-903

customizing ViewModel state preservation, 892-893

identifying stateful ViewModels, 893-898

Silverlight Serializer and, 898-901

unwinding property lambda expressions, 901-902

IsolatedStorageSettings class, 889-890

local folder, 881-882

.NET Isolated Storage API, 883-886

WinPRT Windows Storage API, 883, 887-889

managed storage, 882

.NET Isolated Storage API, 883-885

reading/writing data to isolated storage, 884-886

serialization performance, 886-887

WinPRT Windows Storage API, 883, 887-888

application settings, 888-889

measuring available free space, 888

serialization requirements, 889

status updates, posting to social networks, 445

stock ticker application example, push notifications and, 511-524

storage

isolated storage

deploying databases to, 943-946

IsolatedStorageSettings class, 889-890

.NET Isolated Storage API, 883-886

SQL CE database files, 940-942

storing/browsing web content in, 225-228

Windows Phone SDK Isolated Storage Explorer, 938-939

WP7 Isolated Storage Explorer, 939-940

local databases, data storage and, 905

code-first data model creation, 909-910

deploying databases, 906-907

deploying databases to isolated storage, 943-946

LINQ to SQL, 905, 908-909, 948-950, 958-965

mapping inheritance hierarchies, 958-962

navigation services, abstracting, 946-948

SQL Server Compact, 906

SqlMetal and database-first data model creation, 942-943

Twitter timeline viewer example, 910-937

updating database schemas, 951-957

versioning database schemas, 957-958

viewing database schemas, 937-942

viewing/modifying SQL CE database files, 940-942

Windows Phone SDK Isolated Storage Explorer, 938-939

WP7 Isolated Storage Explorer, 939-940

XAP files, 906-907

managed storage, state preservation and, 882

WinPRT Windows Storage API, 883

Storyboards (Windows Phone Application Analysis tool), 26

streaming audio/video content, 194

stretching text, 159

styling text, 159

submitting apps to Windows Phone Marketplace, 15-16

subscribing to

events (life cycle of apps), 51

push notifications, 489-490

binding to shell, 490-491

channel errors, handling, 492-493

HttpNotificationChannel events, 491-492

Surface Counter field (Frame Rate Counter), 22

switch color, changing via ToggleSwitch component (Toolkit), 297

synchronous validation

decoupling validation, 830

provisioning for, 827-828

validating changing properties, 830-833

syntactic validation, 806

T

tag expressions in UTF (Unit Test Framework), 743-744

tap and click events (buttons), 123

tap gestures (touch input), 369-370, 373-374, 382

templates (Windows Phone App), 3

terminating apps, 53

testing (automated), 738-739

ad hoc testing, 737

choosers, testing via, 769-771

integration testing, 739

IoC, 765-767

launchers, testing via, 769-771

trial conditions, testing, 767-769

unit testing, 737-738

UTF, 739-740

AssemblyCleanup attribute, 746

AssemblyInitialize attribute, 745-746

assertions, 751-752

Asynchronous attribute, 749

asynchronous testing, 762-763

Bug attribute, 749-750

ClassCleanup attribute, 746

ClassInitialize attribute, 746

creating a test project, 740-741, 747

creating test classes, 741-743

Description attribute, 748

ExpectedException attribute, 749

hiding Expressions Editor, 752-753

Ignore attribute, 747-748

metadata, 745-751

Owner attribute, 748-749

Priority attribute, 750

Tag attribute, 749

tag expressions, 743-744

testable chat client app example, 754-764

TestClass attribute, 744

testing multiple assemblies, 753

testing nonpublic members, 753

TestInitialize attribute, 747

TestMethod attribute, 745

TestProperty attribute, 747

Timeout attribute, 748

WorkItemTest class, 751

text

clipboard, placing text on, 179-180

displaying, 155

element types, understanding, 154-155

fonts

assigning, 164

bold text, 159-160

built-in fonts, 160-162

colored fonts, 160

embedding fonts, 162-164

language support, 160-161

OpenType fonts, 159

properties of, 158-160

Segoe font, 159

selecting, 159

sizing, 159-160

stretching, 159

styling, 159

third-party fonts, 162-164

weight adjustments, 159-160

Windows Font Preview tool, 163

formatting at runtime, 176-179

inputting via TextBox control, 165

input scope, 168-174

IntelliSense support, 168

SIP, 165-168

word prediction, 168

line breaks, 155-157

localizability (internationalization), 625-629

Microsoft Design Language, 153

multiline text, 155-158

notification text, lock screen customization, 401-403

PasswordBox element, 154

passwords, receiving via PasswordBox control, 175-176

rich content, displaying via RichTextBox control, 176-179

suggesting via AutoCompleteBox component (Toolkit), 259-266

dynamically populating, 266-267

styling, 268-270

TextBlock element, 154-155

displaying text, 155

LineBreak objects, 155-158

multiline text, 158

Run objects, 155-158

TextBox element, 154-155

TTS, 732

selecting speaking voice, 732-733

SSML files, 733-735

whitespace, handling, 155

Texture Memory Usage field (Frame Rate Counter), 22

third-party fonts (text), 162-164

thumbnail images, viewing in PhotoCamera app, 672-678

tile notifications, 486, 500-501

notification classes, 510-511

sending, 501-504

stock ticker application example, 520

updating via shell tile schedules, 504-505

Tile options (Windows Phone Emulator), 6

tiling images, 208

TiltEffect component (Toolkit), 291-293

TimePicker/DatePicker components (Toolkit), 277-281

control headers, adding to TimePicker component (Toolkit), 281

customizing

full-screen picker pages, 282-286

value formats, 281-282

Title layer (Panorama control), 349

titles (apps), retitling via Windows Phone Emulator, 6

toast notifications, 485, 495-496

notification classes, 510-511

receiving, 496-497

sending, 497-500

stock ticker application example, 520

to-do list scheduled task example, 1019-1024

creating to-do item shell tiles, 1028-1029

debugging scheduled tasks, 1025

editing existing to-do items, 1030-1035

saving to-do items, 1029-1030

todoListView XAML, 1025-1028

updating tiles via Scheduled Task Agent, 1035-1036

Toggle button, 124, 126-128

ToggleSwitch component (Toolkit)

Boolean option, providing, 293-295

localizing, 295-297

switch color, changing, 297

tombstoning, 52-53, 406-408

Toolkit, 253

AutoCompleteBox component, 259-260

data binding, 270-271

defining custom filters, 264-266

dynamically populating suggested lists, 266-267

ItemFilter property, 264-266

MVVM and, 260-264

styling suggested lists, 268-270

Boolean option, providing via ToogleSwitch component, 293-295

changing switch color, 297

localizing ToggleSwitch component, 295-297

CodePlex.com, 254

components of, 254-255

ContextMenu component

displaying, 271-273

hosting in a ListBoxItem, 275-277

MVVM and, 273-275

data binding, 270-271

DatePicker/TimePicker components, 277-281

adding control headers to TimePicker component, 281

customizing full-screen picker pages, 282-286

customizing value formats, 281-282

flexible layouts via WrapPanel component, 297

child element spacing, 298

sample code, 298-299

using with ListBox, 300-302

in-place selection, 255-258

installing, 254

ListPicker component, 255-258

LockablePivot control, 355

looping lists, 287-291

LoopingSelector component, 287-291

suggesting text, 259-266

dynamically populating, 266-267

styling, 268-270

TiltEffect component, 291-293

Toolkit gestures (touch input), 372-373

double tap gestures, 374, 382

drag gestures, 375-377, 383

flick gestures, 377-378, 384-386

GestureBegin events, 380-381

GestureCompleted events, 380-381

hold gestures, 375, 382

pinch gestures, 378-380, 383-384

sample code, 381-386

tap gestures, 373-374, 382

touch feedback, providing, 291-293

updating, 254

ToolTip control, 138

touch feedback, providing via Toolkit, 291-293

touch input

designing for, 386

design guidelines, 387-388

sizing/spacing constraints, 387

touch components, 386-387

double tap gestures, 370, 374, 382

drag gestures, 375-377, 383

flick gestures, 377-378, 384-386

hold gestures, 371-372, 375, 382

manipulation events, 357, 363-367

mouse events, 357-359, 361-362

pinch gestures, 378-380, 383-384

tap gestures, 369-370, 373-374, 382

Toolkit gestures, 372-373

double tap gestures, 374, 382

drag gestures, 375-377, 383

flick gestures, 377-378, 384-386

GestureBegin events, 380-381

GestureCompleted events, 380-381

hold gestures, 375, 382

pinch gestures, 378-380, 383-384

sample code, 381-386

tap gestures, 373-374, 382

Touch class, 360-361

TouchPoint class, 357, 360-361

mouse events, 361-362

Touch.FrameReported events, 362-363

UIElement gesture events, 357-358, 368-369

double tap gestures, 370

hold gestures, 371-372

tap gestures, 369-370

Windows Phone Emulator, 358

tracking location via Map control, 594-596

transferring files (background), 1043

app termination/resubscription to transfer events, 1048

sample code, 1048-1049

backing up local databases, 1052-1055

restoring local databases, 1055-1058

retrieving user Windows Live Anonymous IDs, 1050-1052

URL rerouting with WCF services, 1049-1050

transfer requests, 1043-1047

transient application state. See also persistent application state, 49, 97

requirements, 54-55

restoring, 55

saving, 53-54

transitions (animated), Windows Phone Toolkit, 110-114

Trigger Reminders button (Simulation Dashboard), 877

TTS (Text-to-Speech), 732

selecting speaking voice, 732-733

SSML files, 733-735

Twitter timeline viewer example (local databases), 910-912

Association attribute, 917-918

Column attribute, 912-914

connection strings, 920-924

database utilities, 919-920

leveraging custom Twitter services, 924-929

multiplicity, 917-918

one-to-many relationships, 917-918

tracking data context changes, 915

TwitterDataContext class, 918-919

TwitterUser class, 915-917

user credentials, gathering in Sign In view, 929-932

viewing tweets in Timeline view, 932-937

U

UI testing (coded), 739

UI thread (XAML animation/graphics), 18-20

UIElement gesture events (touch input), 357-358, 368-369

double tap gestures, 370

hold gestures, 371-372

tap gestures, 369-370

unit testing, 737-738

update intervals (XNA game loops), controlling, 203

updating

deals/special offers, Wallet hub and, 796-802

live tiles, 391, 396-397

local databases schemas, 951-957

localizability (internationalization), 618-620

membership information, Wallet hub and, 802-804

payment instruments in Wallet hub, 789-792

phrase lists in VCD files, 731-732

status updates, posting to social networks, 445

stock ticker application example, 523-524

tile notifications via shell tile schedules, 504-505

to-do item tiles via Scheduled Task Agent, 1035-1036

Toolkit, 254

upload share application (photos), creating, 647-654

user input (controls)

buttons

Button Click mode, 124

check boxes, 131-138

Hyperlink button, 124

icon buttons (application bar), 234-237

icon buttons (custom application bar), 237-238

minimizing Icon Button Tray (application bar), 234, 243

Radio button, 128-131

Repeat button, 124-126

sizing, 121-123

tap and click events, 123

Toggle button, 124, 126-128

content controls, 119-121

drawing surface, presenting via InkPresenter element, 186-193

items controls

ComboBox control, 142

ListBox control, 140-142

Selector class members, 139

range controls

progress indicators, 145-151

ProgressBar control, 144

RangeBase class properties, 143-144

scrollbars, 152

sliders, 151-152

sensors

accelerometers, 525, 527-539

compass sensors, 525, 539-548

gyroscope sensors, 525, 548-552

motion sensors, 525, 552-557

overview of, 525-527

ToolTip control, 138

touch feedback, providing via Toolkit, 291-293

touch input

designing for, 386-388

double tap gestures, 370, 374, 382

drag gestures, 375-377, 383

flick gestures, 377-378, 384-386

hold gestures, 371-372, 375, 382

manipulation events, 357, 363-367

mouse events, 357-359, 361-362

pinch gestures, 378-380, 383-384

tap gestures, 369-370, 373-374, 382

Toolkit gestures, 372-386

TouchPoint class, 357, 360-363

UIElement gesture events, 357-358, 368-372

Windows Phone Emulator, 358

validating, 805

asynchronous validation, 824-847

composite validation, 824-847

defining validation visual states, 810-824

property setters, 806-810

semantic validation, 806

syntactic validation, 806

Windows Phone FCL

control types within, 117

Silverlight controls not in FCL, 118-119

unsupported Silverlight controls, 119

User Interface Thread Frame Rate (FPS) field (Frame Rate Counter), 22

user reviews (apps), allowing in Marketplace, 426

UTF (Unit Test Framework), 739-740

AssemblyCleanup attribute, 746

AssemblyInitialize attribute, 745-746

assertions, 751

CollectionAssert, 752

StringAssert, 752

verifying collection conditions, 752

verifying string conditions, 752

Asynchronous attribute, 749

asynchronous testing, 762-763

Bug attribute, 749-750

ClassCleanup attribute, 746

ClassInitialize attribute, 746

Description attribute, 748

ExpectedException attribute, 749

Expressions Editor, hiding, 752-753

Ignore attribute, 747-748

metadata, 745-751

Owner attribute, 748-749

Priority attribute, 750

Tag attribute, 749

tag expressions, 743-744

test classes, creating, 741-743

test project, creating, 740-741

testable chat client app example, 754-758

automation peers, manipulating UI elements at runtime, 763-764

building views, 758-760

code driven UI testing, 760-763

TestClass attribute, 744

TestCleanup attribute, 747

testing

multiple assemblies, 753

nonpublic members, 753

TestInitialize attribute, 747

TestMethod attribute, 745

TestProperty attribute, 747

Timeout attribute, 748

WorkItemTest class, 751

V

validating

arguments, 39-40

group validation, 818-820, 844-847

user input, 805

asynchronous validation, 824-847

composite validation, 824-847

defining validation visual states, 810-824

property setters, 806-810

semantic validation, 806

syntactic validation, 806

vCards, converting stored contacts to/from, 478

VCD (Voice Command Definition) files, 723-724

installing, 726-730

structure of, 724-725

updating phrase lists in, 731-732

video

media files, playing, 428-435

PhotoCamera app, adding video effects to, 668-671

playing via MediaElement, 193-194

controlling audio output, 194

sample code, 194-200

streaming content, 194

XNA SoundEffect class, 201-202

Silverlight webcam API, displaying video in, 684-685

ViewModelBase class (MVVM), 32

visibility

item visibility in custom application bar, 250

XAML element visibility and performance, 19-20

visual states, customizing maps via, 604-610

Visual Studio Express 2012, 2

Add New Project dialog, 2

OData, 850

Simulation Dashboard, 63, 876

SOAP services, 850

Solution Explorer, 3

Windows Phone App template, 3

XAML

creating apps, 2-3

XAML design view, 4

Visual Studio New Project dialog, creating Pivot applications in, 331

voice-driven apps, 699

speech recognition, 700-701

custom speech recognition UI, 718-721

dictation grammars, 701-703

list grammars, 701-710, 731-732

phrase list grammars, 701-710, 731-732

ready-to-use grammars, 701-703

speech recognizer settings, 717-718

SRGS grammars, 702, 710-717

web search grammars, 701-703

XML grammars, 701-702, 710-717, 721-723

TTS, 732

selecting speaking voice, 732-733

SSML files, 733-735

voice commands, launching apps via, 723-724

installing VCD files, 726-730

updating phrase lists in VCD files, 731-732

VCD file structure, 724-725

Voice Paint app, creating, 703-721

W

Wallet hub, 773

deals/special offers

storing information, 796-802

updating information, 796-802

introduction to, 774-775

membership information

storing, 792-796

updating, 802-804

payment instruments, storing in, 773, 775-777, 789-792

required capabilities for wallet integration, 775

WCF services

Bookshop sample app, 95-97

consuming, 44-45

web (world wide)

links, sending to contacts, 444

searching, 442-443

web content

apps, hosting within, 70-71

WebBrowser element, displaying in, 217

communicating with web pages, 218-221

injecting behavior into web pages, 222-223

monitoring/canceling navigation, 217-218

storing/browsing web content in isolated storage, 225-228

web pages, navigating, 446-447

web search grammars (speech recognition), 701-703

WebBrowserTask, choosers/launchers and, 446-447

webcam API (Silverlight), 655-656

weight (text), adjusting, 159-160

whitespace, handling in text, 155

Wi-Fi triangulation and location aware apps, 562

Windows Font Preview tool, 163

Windows Live Anonymous IDs, retrieving (background file transfers), 1050-1052

Windows Mobile 6.5 apps, Windows Phone 8 compatibility, 1

Windows Phone 8

performance, Pivot and Panorama controls, 329

Windows Mobile 6.5 app compatibility, 1

Windows Phone App template, 3

Windows Phone Application Analysis tool, 21, 26

CPU Usage Graph, 25

execution profiling, 21-23

External Events view, 25

Frame Rate Graph, 25

GC Events, 26

Image Loads, 26

launching, 21-23

Memory Usage MB Graph, 26

performance metrics, viewing, 24

Performance Warnings view, 26-27

Storyboards, 26

Windows Phone Certification Requirements, launching events, 50

Windows Phone Emulator, 2

Additional Tools window, opening, 4

app customization

MainPage, 6, 9-11

retitling apps, 6

App List, 6

Application class, 7-8

Close button, 5

display orientation, changing, 4-5

display size, changing, 4

display window, scaling via Fit to Screen button, 5

floating menu, 4

launching, 3-4

Lock screen, engaging, 63

minimizing window, 4-5

resolution settings, changing, 5

Show Resolution Settings button, 5

Start Experience, 6

Tile options, 6

touch input, 358

WCF services, consuming, 44-45

XAML apps

customizing, 5-7

debugging, 3-7

running, 3-7

Windows Phone execution model. See execution model

Windows Phone FCL

controls

Button Click mode, 124

check boxes, 131-138

ComboBox control, 142

content controls, 119-121

control types within FCL, 117

Hyperlink button, 124

items controls, 138-142

ListBox control, 140-142

progress indicators, 145-151

ProgressBar control, 144

Radio button, 128-131

range controls, 142-152

Repeat button, 124-126

scrollbars, 152

Silverlight controls not in FCL, 118-119

sizing buttons, 121-123

sliders, 151-152

tap and click events, 123

Toggle button, 124, 126-128

ToolTip control, 138

unsupported Silverlight controls, 119

Panorama control placement within, 328

Pivot control placement within, 328

Windows Phone Marketplace

Marketplace Test Kit, determining app capabilities via, 17

push notification requirements, 489

submitting apps to

app performance, 21

capability discovery phase, 16-17

XAP files, 15-16

Windows Phone SDK 8.0

Frame Rate Counter, 20-21

installing, 2

lock screen/app integration, 397-399

background images, 399-401

creating lock screen icons, 403-404

notification text, 401-403

Microsoft Expression Blend for Windows Phone, 2

requirements for, 2

Simulation Dashboard, 876

support for, 2

text

formatting at runtime, 178-179

inputting via TextBox control, 165-176

placing on clipboard, 179-180

rich content, displaying via RichTextBox control, 176-179

Visual Studio Express 2012, 2

Add New Project dialog, 2

creating XAML apps, 2-3

Solution Explorer, 3

Windows Phone App template, 3

XAML design view, 4

Windows Phone Emulator, 2, 5

App List, 6

Application class, 7-8

changing display orientation, 4-5

changing display size, 4

changing resolution settings, 5

customizing XAML apps, 5-7

debugging XAML apps, 3-7

floating menu, 4

launching, 3-4

MainPage, 6, 9-11

minimizing window, 4-5

opening Additional Tools window, 4

retitling apps, 6

running XAML apps, 3-7

scaling display window, 5

Start Experience, 6

Tile options, 6

Windows Phone SDK Isolated Storage Explorer, 938-939

Windows Phone Toolkit. See Toolkit

Windows.System.Launcher class, auto-launching apps via, 981

WinPRT Windows Storage API, 883, 887-888

application settings, 888-889

measuring available free space, 888

serialization requirements, 889

WMAppManifest.xml files, defining app capabilities, 16

word prediction, inputting text, 168

WP7 Isolated Storage Explorer, 939-940

WrapPanel component (Toolkit), flexible layouts via, 297

child element spacing, 298

ListBox, using with, 300-302

sample code, 298-299

X

XAML

Application class, 7-8

apps

creating via Visual Studio Express 2012, 2-3

customizing, 5-7, 9-11

argument validation, 39-40

graphics/animation

composition thread, 18-20

UI thread, 18-20

iCommand interface, 38

CanExecute (object) method, 38

CanExecuteChanged method, 38

Commanding.Event property, 39

DelegateCommand constructor, 38-39

Execute (object) method, 38

playCommand constructor, 38-39

input validation, 805

asynchronous validation, 824-847

composite validation, 824-847

defining validation visual states, 810-824

property setters, 806-810

MVVM, 31

implementing, 31-32

property change notification, 33-37

ViewModelBase class, 32

opacity of elements, 20

Silverlight in, 1

todoListView XAML in to-do list scheduled task example, 1025-1028

Toolkit, components of, 254

visibility of elements and performance, 19-20

Windows Phone Emulator

debugging apps, 3-7

running apps, 3-7

XAML design view, 4

XAML plus .NET, 1

XAML plus .NET, 1

XAP files, 14

Application Deployment tool, 15

components of, 14

defining, 14

local database deployments, 906-907

MSIL, 16-17

purpose of, 14

requirements for, 14

Windows Phone Marketplace, submitting apps to, 15-16

XML grammars (speech recognition), 701-702, 710-717

XNA game loops, controlling via GameTimer class, 202-203

update intervals, controlling, 203

XNA environment initialization, 203-204

XNA microphone API, 691

helium voice app, creating, 692-698

recording audio, 691-692

XNA SoundEffect class, 201-202

Y - Z

zooming/panning via Map control, 590

Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.217.124.83